c语言初学,编完程序后计算出来的值很乱,是怎么回事?

c语言初学,编完程序后计算出来的值很乱,是怎么回事?,第1张

把scanf("%ld", &I)移动到prinf("请输入利润\n")的下一行就搞定了。

为什么要这样改?

编程时,要注意流程,有先有后,符合逻辑。

上述prinf("请输入利润\n")后,没有立即给I赋值,然后就对I进行运算,这样是不对的。

为什么没改前会有-64422008.00的计算结果?

编译器会把任何没有初始化变量自动赋为垃圾值

例如上述的long int I;定义了I变量但是没有初始化赋值。系统自动赋为垃圾值。

垃圾值就像这种-8839284 ,一些很不靠谱的数。系统这么做是为了暗示你有变量可能没有初始化,但编译时是不会提示有错误的。

如何避免?

对于初学者,这类错误很常见。

建议编程时应该养成良好的习惯。

什么习惯?定义变量的同时对其进行初始化

例如:long int I = 0;

float x = 0.0等等

可参考一下《高质量编程》著:林锐

这是因为电脑运行得很快,

而你编写的程序里面肯定没有让电脑可以停歇的语句,电脑执行完程序后就自动关闭,只有想办法让它停下等咱们才能看清楚

所以建议在程序的最后加一句getchar()这时,你要加入头文件#include<conio.h>。

因为这个头文件是键盘和屏幕输入输出的控制头文件。当然也有别的方法,就等你了解其原理时就知道该怎样了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11793165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存