一道c语言问题 我的错了 看看为什么
题目是:有一篇文章,共有3行文字,每行有80个字符。编写程序分别统计出其中英文大写字母、英文小写字母、数字、空格以及其他字符的个数。图上是我编的我感觉是scanf那里的问...
题目是:有一篇文章,共有3行文字,每行有80个字符。编写程序分别统计出其中英文大写字母、英文小写字母、数字、空格以及其他字符的个数。图上是我编的 我感觉是scanf那里的问题 但是不知道具体原因,请帮忙分析 谢谢
展开
1个回答
展开全部
实话实说,你的代码写得“很臭”
1.变量那么多,名字却随便取
2.数据的输入和数据的处理同时处理,虽然这么做可以“稍稍”提高一下效率,但就你这个程序量,根本不需要考虑效率上的问题,你应该多考虑考虑“代码的逻辑体现”方面的问题!
3.请搞清楚你要输入的“一行文字”是不超过80个字符,还是确定了就是80个字符!另外,请给作为字符串结尾的'\0'也留一个位置!
4.你的代码问题出在内嵌for循环的判断条件上,你写的是j<=79||j!='0',你自己问问自己为什么有 j!='0'???
1.变量那么多,名字却随便取
2.数据的输入和数据的处理同时处理,虽然这么做可以“稍稍”提高一下效率,但就你这个程序量,根本不需要考虑效率上的问题,你应该多考虑考虑“代码的逻辑体现”方面的问题!
3.请搞清楚你要输入的“一行文字”是不超过80个字符,还是确定了就是80个字符!另外,请给作为字符串结尾的'\0'也留一个位置!
4.你的代码问题出在内嵌for循环的判断条件上,你写的是j<=79||j!='0',你自己问问自己为什么有 j!='0'???
更多追问追答
追问
感谢你的耐心回答 写的很多也很实在,不过第一句话真的吓到我了,说实话伤我自尊了,感觉我挺认真的在写结果你这么一讲,当然我知道你说的确实如此,我只是在假装认真的吧 自己的问题一直都看不到 我很笨而且也是才学没多久,现在只要求能把程序运行下来就行,问题很多 当然这个不是什么理由,你说的问题我以后会注意的,谢谢!
追答
我的话的确是说重了,不好意思
我的本意是把话说重一点,告诉你现阶段应该要注意的事情,比如代码的整洁,逻辑的清晰,变量命名的规范,这些对于初学者来说,远比那一点点效率重要
没有什么笨不笨的,要相信自己,相比于“自然规定”的天文物理,“认为规定”的计算机科学并不会要太高的智商。
我再次提醒一下,相比于一些“小方便”,“小效率”,你现在更需要注意的是:让代码体现出你的程序逻辑,比如数据的输入和数据的处理分开,变量的名字与其用处相适应等等,这些对于你以后继续学习、理解、写更复杂的程序都很重要!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询