- scanf输入时 可以加一些奇怪的东西,比如符号(?)
scanf("%d?",&a);
- 定义变量时,最好赋初始值
int a;
a=100;//在使用和赋值前最好先赋一个初始值,否则可能会报错
- 使用 %.f 也可以输出四舍五入的整数
- 数与数之间相除,不同类型的数相除相乘,最后得到的结果一般是按照得到那个数的类型进行转换
-
int a=9; float b=2.5; float c; //按照c的类型处理数据吧 c=a/b; printf("%f",c);//此时输出为3.600000 如果int c;则输出为 3(注意printf中要改为%d)
- C语言运行顺序 从左往右先乘除后加减
- c语言快捷键 给一整段加注释 不同编译器快捷键不同 https://blog.csdn.net/Hoghst_debug/article/details/126796030j
- 其他快捷键https://www.cnblogs.com/Burning-youth/p/15448672.html#:~:text=%E5%A4%A7%E4%B8%80C%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%EF%BC%882%EF%BC%89---%E5%BF%AB%E6%8D%B7%E9%94%AE%E7%AF%87%201%201.Home---------------%E5%B0%86%E5%85%89%E6%A0%87%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%85%89%E6%A0%87%E6%89%80%E5%9C%A8%E8%A1%8C%E6%9C%80%E5%89%8D%E7%AB%AF%20%EF%BC%9B%20End-------------%E5%B0%86%E5%85%89%E6%A0%87%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%85%89%E6%A0%87%E6%89%80%E5%9C%A8%E8%A1%8C%E6%9C%80%E5%90%8E%E7%AB%AF%202%202.Ctrl%20%2B,5.Ctrl%20%2B%20Z--------------%E6%92%A4%E5%9B%9E%E5%88%9A%E6%89%8D%E7%9A%84%E6%93%8D%E4%BD%9C%20%EF%BC%9B%20Ctrl%20%2B%20Y-------------------%E6%81%A2%E5%A4%8D%E5%88%9A%E6%89%8D%E6%92%A4%E5%9B%9E%E7%9A%84%E6%93%8D%E4%BD%9C%20%E6%9B%B4%E5%A4%9A%E9%A1%B9%E7%9B%AE
- c中在各种条件下要把一个变量重新赋值为0,一定要注意,除了条件以外的赋值!!! (条件使用完之后 ,在下一个循环中也要赋值) 比如那个选号程序,位数和重新赋值为0时,除了在条件中使用完赋值后,还要在非条件的情况下赋值
- float强制类型转换为什么失败?注意条件吧https://blog.csdn.net/iteye_10289/article/details/82547058
- 做一下素数判别
- if 内部比较顺序 如果有两个比较条件 且没写与或符号时,两个条件满足其中一个,就能继续执行(或的关系)
if(a=1;a<12,b<18;a++)//只要满足(a<12,b<18)其中之一,就能继续运行
- for循环 i的取值 每一个条件执行的时候,看看是否会重复执行,或者要满足什么条件才能执行
- for循环 i<=n时,i能取到n,运行一遍下面的程序,后面就不能了
- 赋值和比较是不一样的!!!(下面的详细解释 后续写)
- codeblocks 打开工程后,编译运行默认是打开的那个文件,所以想要编译别的文件要关闭工程,或者把想要打开的工程设置为active project
- 最大公约数 使用辗转相除法
- c在进行每一个数据更替时,记得写数据更替!
- codeblocks调试项目中,不要有中文路径,否则调试会闪退?
- break跳出当前循环?
- 总结金字塔的算法
- 前后比较的时候,要一直比较的话,就要一直覆盖前一个值
- 用while当条件,想要变量不为0时,如果不能一直输入变量,那么变量不为0时,会死循环。
- break跳出if语句 可以跳出if和外面一层循环。
- for里面写俩条件意思是或,后面的计算是两个都进行 如果想要跳出的话就要两个都不满足,才能跳出。
- c语言中考虑0 1这种输入的特殊情况
- 如果输出为浮点数,但用整型变量输出就会变成错误的数字 可以用强制类型转换输出
- 强行把float 以整型输出会变成很大的负数 C语言中int类型,如果计算的数量过大的话,会导致程序停止运行
- 数组的定义,不能用变量定义,即使是先把变量存进去也不行
- for循环输出变量是,在变的量,不要输出固定的值了。
- 设置变量条件时一定要确定,到底是哪个才是最终变化到最后的
- 数组全部赋0时,用中括号
- 比较是否相等用==
- if 之外的情况用else if 要不然可能if内变了之后进了设的新if里
- 使用i++指的是在使用i之后.i+1
- 数组赋初值必须要有前面的数据类型再赋值。
- 在进行长度计算排序时,一定要考虑一下特殊情况,比如只有最后一个为1的时候
- 数组的长度就是里面那个数字,不能太短,否则会出错
- cb里面switch case后不加break会一直执行下去,不管是否匹配,所以必须加break,why?
- 当某个case 后的常量匹配后,如果执行语句最后没有break,则这个case下面的case无论是否匹配,都会被执行,并且会向下传递,直到遇到某个case里面的break,或是执行完所有的case里面的内容,才结束Switch语句。
- &是按位与的意思。
- c语言二维数组存储方式
- 二维数组下标取值范围。
- 回去代码试试每一行首地址是什么。
- c语言0表示假,非0为真
- codeblocks全部注释 ctrl shift c
- 取消ctrl shift x
- 字符串连接要用双引号!!!
- 看清变量如何变化的,后面改的时候会都改了。
- 位数更长的,输出要用lld!!!!
- while里非0就是1
- 递归太多就是会超出堆栈,加载很慢。比如斐波那契第50个数。 此时的结果就出的很慢,原因是什么?因为它超出堆栈的默认1MB的大小所以就结果出的很慢。