博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言基础
阅读量:5172 次
发布时间:2019-06-13

本文共 1101 字,大约阅读时间需要 3 分钟。

纪念第一次写的代码:

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

1 #include
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
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输入的数如果输入的不是数字呢?

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

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

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

转载于:https://www.cnblogs.com/waiting999/p/6945767.html

你可能感兴趣的文章
第一次作业
查看>>
工作日记
查看>>
weblogic 10.x 上开发restful服务
查看>>
在团队中我的索引卡任务
查看>>
我的一点企业做云经验
查看>>
简单介绍.Net3.0 中跨线程访问控件
查看>>
oracle imp 工具可能出现的问题
查看>>
bzoj1045题解
查看>>
学习Cocos2d的博客 --推荐
查看>>
SpringMVC中@RequestMapping参数设置
查看>>
lea实现加法
查看>>
文件操作
查看>>
spring容器启动的加载过程(三)
查看>>
jdbc连接数据库代码
查看>>
loadrunner使用system()函数调用Tesseract-OCR识别验证码遇到的问题
查看>>
【XSY2731】Div 数论 杜教筛 莫比乌斯反演
查看>>
flash 随机函数
查看>>
一些命令及参数
查看>>
Bootstrap validation
查看>>
2017.4.18-morning
查看>>