-
if中别忘了==,而不是=。
-
写完程序别忘了检查前后大括号、小括号是否完全照应。
-
遇到几分之几的分数可以方程两边同时乘以一个数来消去分母。
-
写指针题时看准指针对应的是行还是列。
例:int a[4][3];
int *p=a[0]; 列指针。
int (*ptr)[3]=a; 行指针。 -
考虑好哪些量会随着循环不断改变。哪些量不会,如果搞混,会出现难以察觉的错误。
-
C语言中scanf只有在字符数组时不用加&,注意是字符串不是字符,也就是说%s后面可以直接scanf(“%s”,a),而%c后面不行。
-
定义i用于循环时常常定义在for( )之内,注意后面如果用到i,这样写是错误的,因为i只在局部有效。
-
注意strlen只适用于字符串数组,不能用于整形数组。
-
strlen使用时注意不要跳过字符串数组的a[0],为了方便就从a[1]开始赋值,如果这样strlen会计算为0,从而出错。
-
注意对于字符串数组,在代码中通过把%d的数字通过“=”转换为字符串中的字符时,字符串识别的是ASCII码为%d对应的数字时那个的字符,而不是我们想要的原字符,所以这时有两个解决方案:
第一,转化式中在%d数字后加一个字符‘0’。
第二,输出时不用%c输出,用%d直接输出!
例如
int b;
char a[100]={0};
scanf("%c",&a[0]);
printf(“%c”,a[0]);
等价于
scanf("%d",&b);
a[0]=b+‘0’;
printf(“%c”,a[0]);
等价于
scanf("%d",&b);
a[0]=b;
printf(“%d”,a[0]);
- 定义时,长整型long int可以简化成long去写。
- codeblocks调试时遇到Debugger finished with status 0,这句话翻译为:调试器以状态0结束。
原因可能是未设置断点或者保存程序的文件夹含有中文。