
C语言专栏
C语言学习内容
日日安.
代码来自网课等平台学习内容加以个人理解,用于个人笔记方便后期查找,如有侵权请联系速删。
展开
-
字符串比对
题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到,则输出-1。第一个字符串在第二个字符串中出现的位置,按照从小到到的顺序排列,每个数字后面有一个空格。注意,一个字符串在第二个字符串中的位置可能不止一处。如果在第二个字符串中找不到第一个字符串,则输出-1。时间限制:500ms内存限制:32000kb。注意,两个字符串的长度一定大于0。原创 2025-04-30 16:54:44 · 131 阅读 · 0 评论 -
单词 长度
你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。原创 2025-04-16 13:27:18 · 178 阅读 · 0 评论 -
鞍点(数组)
给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格。对输入的矩阵,如果找到鞍点,就输出其下标。下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数。题目所给的数据保证了不会出现多个鞍点。你的任务是找出A的鞍点。原创 2025-04-13 18:34:39 · 174 阅读 · 0 评论 -
多项式加法
注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。程序要处理的幂最大为100。原创 2025-04-13 17:16:24 · 129 阅读 · 0 评论 -
找钱(scanf)
scanf const原创 2024-03-11 13:55:55 · 116 阅读 · 0 评论 -
scanf读取多个数值
未初始化即定义的变量未赋初值,若有格式外的输入,例如上述输入的不是整数则会出现乱码(乱码的内容是系统里面有什么就输出什么并不、固定)原创 2024-03-11 14:10:05 · 699 阅读 · 0 评论 -
int double(英尺、英寸、厘米/米转化)
将scanf中的%d改为%lf,将printf中%d改为%f。因为两个整数的运算结果只能是整数,如有小数会自动舍弃。将int改为double(双浮点数)将参与运算的数改为小数即可。原创 2024-03-11 14:18:09 · 302 阅读 · 0 评论 -
取余数计算时间差
思路:读取输入的两个时间,分别将小时化作分钟再与分钟相加得到两个总的分钟数,再将分钟相减计算分钟差,将分钟差/60分钟取整得到小时数,取余得到分钟数。原创 2024-03-11 16:42:55 · 170 阅读 · 0 评论 -
交换两个变量的值
【代码】交换两个变量的值。原创 2024-03-11 16:43:09 · 125 阅读 · 0 评论 -
++a和a++
注意:a*=(b+100)/2 [等号右边作为整体先运算出结果] 的意思是 a=a*((b+100)/2)5个算数运算符+,- * / %与赋值运算符=相结合形成复合赋值运算符。复合赋值运算符+=,-=,*=,/=,%=;两个运算符之间不要有空格、/++,--只能用于变量不可用于定值;a++即a+=1即a=a+1。/例:a+=(b+100)/2的意思是 a=a+(b+100)/2。原创 2024-03-11 16:43:23 · 244 阅读 · 0 评论 -
三位数逆序
【代码】三位数逆序。原创 2024-03-11 16:43:38 · 134 阅读 · 0 评论 -
借位计算时间差(if)
【代码】借位计算时间差(if)原创 2024-03-11 16:43:51 · 199 阅读 · 0 评论 -
比较运算符
例如:6>5>4的运算过程为6>5是肯定的然后输出1,1>4是否定的输出0,所以最终结果输出为0。做比较的运算符:(==,!=,优先级比 > < 略低)=,优先级低于算数运算符高于赋值运算符。比较运算符从左到右运算但是是一步一个结果。原创 2024-03-11 16:44:02 · 101 阅读 · 0 评论 -
比大小(if-else)
【代码】比大小(if-else)原创 2024-03-11 16:44:17 · 522 阅读 · 0 评论 -
if-else(两种形式)
形式2:如果不用{}则默认从if到第一个;为if执行范围,else同理。原创 2024-03-11 16:44:30 · 125 阅读 · 0 评论 -
if-else嵌套 if-else if级联
因为else总是和最近的if自动匹配,且不受缩进等格式限制可能达不到想要的结果。暂时可理解为级联是嵌套的另一种排版。嵌套中最好不用省略{}的做法。原创 2024-03-11 16:44:42 · 343 阅读 · 0 评论 -
switch-case
如果case3里面没有break那么这个程序就也会同时输出case4甚至再后面的东西直到遇见break,或者程序结束才会停止。2、case后面可以是定义的常量,比如前面int a,这里也可以写成case a。1、case后面只能是常数或者常数的表达式但是结果一定是常数。switch-case输出成绩等级。3、case并不能作为分割,原创 2024-03-11 16:44:54 · 755 阅读 · 0 评论 -
while循环
4、循环求逆(结尾是0的数)输出不同。3、循环求逆(结尾不是0的数)原创 2024-03-12 19:25:55 · 126 阅读 · 1 评论 -
do-while循环
do while先做一遍循环再判断条件,while先判断条件不合适的话直接不循环。原创 2024-03-12 19:29:19 · 151 阅读 · 1 评论 -
for循环
(素数即质数,质数是指在大于1的自然数中,只能被1和他本身除尽的自然数。for循环括号里面3个式子每一个都是可以省略的但是;for循环 for(;原创 2024-03-12 19:43:42 · 226 阅读 · 1 评论 -
break 和 continue
continue作用是跳过此轮循后面的语句再进行下一轮循环 ,continue只能对他所在的那一层循环做。break的作用就是直接跳出循环 且只能对他所在的那一层循环做。原创 2024-03-12 19:52:37 · 158 阅读 · 1 评论 -
嵌套 循环
个人观点:不同的嵌套循环结构不同,部分从最里面的循环开始会容易理解 ,同样也有一部分从最外面一层理解更容易,不理解时可以变换尝试。嵌套循环输出100以内的素数。嵌套循环输出固定个数的素数。原创 2024-03-12 20:10:08 · 204 阅读 · 1 评论 -
跳出多层循环:接力break 和 go to
goto out 可以直接跳出循环到 out: 所在位置, 但是一般仅限于从最内曾跳到最外层;其他时候使用一般认为容易破坏程序结构性。if(exit==1)可简写为if(exit)exit跳出多层循环。原创 2024-03-12 20:19:50 · 210 阅读 · 1 评论 -
循环求前n项和
1、循环求前n项和(分式1+1/2+1/3+1/4+1/5......+1/n)2、循环求前n项和(分式1-1/2+1/3-1/4+1/5......1/n)原创 2024-03-12 20:26:17 · 335 阅读 · 1 评论 -
辗转相除法
否则,计算a除以b的余数,让a=b,而b等于那个余数;如果b=0,计算结束,a就是最大公约数;辗转相除法求最大公约数化简分式。1、辗转相处法求最大公约数。原创 2024-03-12 20:34:20 · 231 阅读 · 0 评论 -
数字正向分解
1、任意位数数字正向分解。原创 2024-03-12 20:40:42 · 132 阅读 · 0 评论 -
循环求水仙花数
一个N位正整数3<=N<=7,它的每个位上的数字的N次幂之和等于它本身。例如:153=1³+5³+3³。原创 2024-03-12 20:47:25 · 137 阅读 · 0 评论 -
输出乘法表
【代码】输出乘法表。原创 2024-03-12 20:48:18 · 122 阅读 · 0 评论 -
猜数字 2
如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示"Good Guess!并提示大了("Too big”),还是小了("Too small”),相等表示猜到了。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。在一行中输出每次猜测相应的结果,直到输出猜对的结果或“Game Over”则结束。用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,如果超过N次都没有猜到,则提示"Game Over”,并结束程序。如果猜到,则结束程序。原创 2024-03-12 20:55:25 · 213 阅读 · 0 评论 -
循环求给定条件的整数集
给定不超过6的整数A,考虑从A开始的连续4个数字,输出所有由他们组成的无重复数字的3位数。每行6个整数,整数之间用空格分隔,但行末没有空格。原创 2024-03-12 20:57:24 · 94 阅读 · 0 评论 -
给定区间的素数和
【代码】给定区间的素数和。原创 2024-03-12 20:59:46 · 161 阅读 · 0 评论 -
a的连续和
如a为2、n为8时输出的是2+22+222+...+22222222的和。求数列之和S=a+aa+aaa+...taaa...a(n个a)。输入两个整数a和n,a的范围是[0,9],n的范围是[1,8],原创 2024-03-12 21:01:16 · 90 阅读 · 0 评论 -
进制 转换
整数十进制→→二进制 二进制 →→十进制小数十进制→→二进制 二进制 →→十进制。原创 2024-03-16 19:28:18 · 305 阅读 · 0 评论 -
数据类型(整数)
任何形式的输出都是人把他当作什么看,例如unsigned,或是十六进制、八进制等输出只是输出形式不同,与计算机内部实际数值无关。当作补码看待表达的范围是 -128 ~ 127(即 - 2的n-1次方到2的n-1次方再-1;注:n是二进制位数)所以:对于 -a ,其补码就是0-a,实际是(2的n次方-a)n是这种类型的二进制位数。2.取中间数记为0比他小的是负数,比他大的是正数(麻烦不推荐)不管是原码还是补码,运算的时候都是用单纯数值进行二进制运算的。不能在sizeof的括号里面做运算,这些运算是不会做的。原创 2024-03-17 12:43:10 · 1363 阅读 · 0 评论 -
数据类型(浮点数)
+(1.20*~3.40*0-+inf(正负无穷)nan(非有效数字)%f%e(输出科学计数法)-+(2.2*~1.79*0-+inf(正负无穷)nan(非有效数字)%f%e(输出科学计数法)在浮点数中float类型的数字需要f或F后缀来表明例如:1.23f(1.23F)表示float1.23;而1.23表示double类型如果没有特殊要求一般使用double类型误差一般更小整数类型永远是准确的数字而浮点数永远存在误差(E+003)或 e+003表示。原创 2024-03-17 16:43:17 · 436 阅读 · 0 评论 -
char(整数或字符)
整数字符输入的1用scanf("%c")读入的意思是,按照字符类型入读用%d输出是按照整数输出而字符‘1’在ASCII码中对应的数值就是49;用%c输出是按照字符输出,读入字符1,输出字符1;原创 2024-03-17 17:28:06 · 514 阅读 · 0 评论 -
逃逸字符
【代码】逃逸字符。原创 2024-03-17 18:17:52 · 221 阅读 · 0 评论 -
类型转换
强制类型转换只是从原有的变量计算出一个新的变量,不会改变原有变量,不论是原有变量的值还是类型都不会改变。对于printf 任何小于int的类型会被转换成为int;float会被转换成为double。想要将a/b的值转换成int类型a/b必须加上括号int i=(int)(a/b);通常是将大的值转化成小的,但是需要注意此时的安全性因为小的量不能总是表达大的量。当运算符的两边类型不一致的情况下会自动转换成为较大的类型。(int)a/b的意思是将a转换成int类型再除以b;强制类型转换的优先级高于四则运算。原创 2024-03-17 18:40:30 · 170 阅读 · 0 评论 -
数据类型(bool)
bool是逻辑类型,可理解为用做判断,结果正确输出1,结果错误输出0。原创 2024-03-18 12:34:17 · 294 阅读 · 0 评论 -
逻辑运算
a=1或a=1那么!注意:5<a<6的计算方式是首先判断5是否小于a得到结果(0或1)再与6比较,但是无论得到0或1都小于6所以此不等式的值始终是1。a==1&&b==1,如果a==1是false那么不管b==1是true或者false此式子的结果都是0。a==1||b==1,如果a==1是true那么不管b==1是true或者false此式子的结果都是1。① 如果想要表达数学公式中 [5,6] 可以写作(a>=5&&a<=6)a<0||a>99的意思是a不在0~99之间。②可用来判断字母是否为大小写。原创 2024-03-18 14:07:37 · 222 阅读 · 0 评论