纪念第一次写的代码:

给一个5位的正整数,逆序打印出各位数字。

 1 #include<stdio.h>
 2 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 }
revise

觉得上面的代码问题很多:其一只适合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 }
revise1

解决了上述的一二三的问题,但是从根本上还是觉得不够简练,把所有东西都写在main函数里,要是以后项目几万行不便于进行调试

于是进行封装

 1 #include<stdio.h>
 2 
 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 }
revise2

进行封装以后main函数看起来简洁明了,直接调用revise函数进行逆序打印,但是又出现新问题了,scanf输入的数如果输入的不是数字呢?

并没有出现错误但是不打印什么,所以这需要对输入的东西进行判断咯

等等后续还回发现更多的问题

所以写一个好代码不易!!加油