- <p>/*</p><p>代码Debugger:By_Ha</p><p>Debugger的网址:<a href="t.cn/Eq7GdHj">t.cn/Eq7GdHj</a></p><p>分析:对数据类型掌握不牢固,对函数的判定条件不清晰。问题不大,细节需要加强。</p><p>*/</p><p>#include <stdio.h></p><p>#include <bits/stdc++.h>//C++万用库(含有cmath以使用floor函数)</p><p>#include <stdlib.h></p><p>
- </p><p>int main() {</p><p><span style="white-space:pre"> </span>double a;</p><p><span style="white-space:pre"> </span>printf("随便输入一个数:");</p><p><span style="white-space:pre"> </span>scanf("%lf",&a);</p><p><span style="white-space:pre"> </span>if (int(a) % 3==0 && floor(a) - a == 0) printf("这个数是三的倍数,");</p><p> <font color="#ff0000">//注意上面这一行,原代码是</font>"a%3==0"<font color="#ff0000">,对字符串判定真伪,得到真</font></p><p><font color="#ff0000"> //同时a是double双精度类型,不能用取模“%”运算,应该先强制转换为int,再判断a是否为小数,即后面的“floor(a) - a == 0”</font></p><p><font color="#ff0000"> //floor函数是对一个数取不大于它的最大整数</font></p><p><span style="white-space:pre"> </span>else printf("这个数不是三的倍数,");</p><p><span style="white-space:pre"> </span>if (int(a)%10 == 3 && floor(a) - a == 0) printf("它的末尾是三\n");</p><p><span style="white-space:pre"> </span>else printf("它的末尾不是三\n");</p><p><span style="white-space:pre"> </span>system("pause");</p><p><span style="white-space:pre"> </span>return 0;</p><p>}</p>
复制代码
|