纪念第一次写的代码:
给一个5位的正整数,逆序打印出各位数字。
1 #include2 int main() 3 { 4 int i=12345; 5 printf("%d\n",i%10); 6 printf("%d\n",(i%100)/10); 7 printf("%d\n",(i%1000)/100); 8 printf("%d\n",(i%10000)/1000); 9 printf("%d\n",i/10000);10 return 0;11 }
觉得上面的代码问题很多:其一只适合12345的逆序打印,过分单一;其二只适合五位数,如果碰到六位数七位数就完了;
其三代码运用太多的printf,看起来很杂乱;绝对的C语言新手,不过还是能从代码中看出一定的规律的
这是我第一次改正后改正后的代码
1 int main() 2 { 3 int a = 0; 4 scanf("%d",&a); 5 while (a!=0) 6 { 7 printf("%d ",a%10); 8 a = a/10; 9 }10 return 0;11 }
解决了上述的一二三的问题,但是从根本上还是觉得不够简练,把所有东西都写在main函数里,要是以后项目几万行不便于进行调试
于是进行封装
1 #include2 3 void revise(int a) 4 { 5 while (a!=0) 6 { 7 printf("%d ",a%10); 8 a = a/10; 9 }10 printf("\n");11 }12 int main()13 {14 int a = 0;15 scanf("%d",&a);16 revise(a);17 return 0;18 }
进行封装以后main函数看起来简洁明了,直接调用revise函数进行逆序打印,但是又出现新问题了,scanf输入的数如果输入的不是数字呢?
并没有出现错误但是不打印什么,所以这需要对输入的东西进行判断咯
等等后续还回发现更多的问题
所以写一个好代码不易!!加油