C语言基础

纪念第一次写的代码:

给一个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输入的数如果输入的不是数字呢?

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值