#学习C 代码, 做小练习时,自己运行代码竟然发现很多错误,记录一下。
1、计算器
根据输入的数值和符合,输出相应结果。
结果:
#include "stdio.h"int Primary_math(int a, int b, char sign){int num=0;switch (sign){case '+':return num=a+b;break;case '-':return num=a-b;break; case '*':return num=a*b;break; case '/':if(b==0) {printf("Note!!! this sign is '-' ,so b can't be 0!!!!\n\n");return 0;break;}else{return num=a/b;break; } default:printf("the sign is illegal !!");return -1;}
}
void main(){int a=0,b=0;char c='/';int num =0;printf("please input two num and one sign , for example: 23 12 +\n");scanf("%d %d %c", &a,&b,&c);num= Primary_math(a,b,c);printf("num is %d\n\n",num);}
错误总结:
- char 对应的单引号'',""是字符串。
- switch 里每个case 下都要写return , 否则返回默认值,不是计算值。
九九乘法表
#include <stdio.h>int main() {int i,j,num=0;for(i=1;i<10;i++){for(j=1;j<10;j++){num=i*j;printf("%d*%d=%2d ",j,i,num);}printf("\n");}return 0;
}
结果:
不要输出这么多。调整j<=i。 另外,%2d,表示输出结果占两个字符,右对齐,%-2d是左对齐。
排序:
结果:
#include <stdio.h>void bubbleSort(int add[], int len){int i,j,temp=0;int n=len;for (i=0;i<(n-1);i++){for(j=0;j<(n-i);j++){if(add[j+1]<add[j]){temp=add[j];add[j]=add[j+1];add[j+1]=temp;}}}}int main() {int i,j,num=0;int add[10];//int add[10]={12,34,56,4,5,1,2,3,42,14};printf("please input your num: \n");int len=sizeof(add)/sizeof(int);for(i=0;i<len;i++){scanf("%d",&add[i]);}printf("len is %d\n\n",len);bubbleSort(add,len);for(i=0;i<len;i++){printf("%d ",add[i]);}return 0;
}
错误总结:
- 数组输入的时候,要挨个访问下标存入,不能直接scanf("%d%d%d%d%d",&add);
- 数组输出也要遍历数组下标进行一个一个输出,也不能一次性输出整个数组。
- 数组作为函数参数时,不用加[], bubbleSort(add[],len); 是错误的