博主又双叒叕来纠错了。
首先让我们观察一下《C程序设计(第五版)》的134面最下方的代码:
然后让我们试运行一次:
代码运行结果跟书上的图片完全不符。。。
不过这里是小问题,输出时将printf里的语句改为%-4d即可。
但如果将代码改成每5个数据输出一行,问题就出现了:
显然每行之间的距离并不符合程序的预期效果。
经过简单的分析就能发现问题出在控制换行的if语句上,如果根据源程序,当m%10==0时输出\n,但是因为这个语句放在了控制m的值的if语句外面,...
首先博主需要道个歉,原来的博客因为博主一时脑袋发热而出现了逻辑上的错误。
现重发一遍:
今天博主想分享学习C语言过程中发现的问题。
首先你需要一本谭浩强编的《C程序设计》,
然后翻至133面,观察一下最中间的程序。
首先我们按照书上的运行结果试一下,
对于327这个数,程序是正确的。
但是下面两个例子就显得这个程序不那么正确了。
很明显,9=3*3,289=17*17,两者皆不是素数。经过多次试验和分析即可得出这个程序...
刚刚开始学C语言,写个博客纪念一下
对待电脑编译系统切不可像对待数学一样严谨,尤其是浮点数的运算和赋值,无论多么精确的数字,进入电脑的存储系统后,因为电脑存储方式的原因,任何数据都会产生误差,这些误差有的大有的小,可能不会对结果产生影响,但也有可能对结果产生极大的影响,并且结果往往是意想不到的。
例如博主学习过程中遇到的一个float强制转int的例子:
此处就是浮点型数据强制转换为整型数据损失精度的例子,原因类似于int型的3被强制转换为float型时,有可能被存储为2.999999,但用户是感受不到存储时发生的精度损失的,因而会产生结果有误差...