您的位置:首页 > 编程语言 > C语言/C++

C语言基础

2017-07-24 10:14 218 查看
纪念第一次写的代码:
给一个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输入的数如果输入的不是数字呢?



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

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

所以写一个好代码不易!!加油
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: