啊哈磊_编程从这里起步

标题: 在线等,程序问题,挺急的 [打印本页]

作者: SS3B 5109    时间: 2019-2-17 19:43
标题: 在线等,程序问题,挺急的
#include <stdio.h>
#include <stdlib.h>
int main()
{
        double a;
    printf("随便输入一个数:");
    scanf("%lf",&a);
    if ("a%3==0") printf("这个数是三的倍数,");
    else printf("这个数不是三的倍数,");

    if ("a%10==3") printf("它的末尾是三\n");
    else printf("它的末尾不是三\n");
    system("pause");
return 0;
}

捕获.PNG (1.78 KB, 下载次数: 1)

鬼知道发生了什么

鬼知道发生了什么

作者: ssy001    时间: 2019-2-18 14:27
  1. <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>
  2. </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>
复制代码



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

作者: ssy001    时间: 2019-2-18 14:34
ssy001 发表于 2019-2-18 14:27


看下面那个
看下面那个
看下面那个
看下面那个
看下面那个

作者: 星辰劫    时间: 2019-2-19 14:08
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    printf("随便输入一个数:");
    scanf("%d",&a);
    if (a%3==0) printf("这个数是三的倍数,");
    else printf("这个数不是三的倍数,");

    if (a%10==3) printf("它的末尾是三\n");
    else printf("它的末尾不是三\n");
    system("pause");
    return 0;
}



作者: luyunfeng    时间: 2019-2-28 17:04
浮点数没有%操作的,这样子肯定不行
作者: luyunfeng    时间: 2019-2-28 17:06
把float改成int.%lf改成%d就行了
作者: luyunfeng    时间: 2019-2-28 17:06

#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a;
    printf("随便输入一个数:");
    scanf("%d",&a);
    if ("a%3==0") printf("这个数是三的倍数,");
    else printf("这个数不是三的倍数,");

    if ("a%10==3") printf("它的末尾是三\n");
    else printf("它的末尾不是三\n");
    system("pause");
return 0;
}
作者: luyunfeng    时间: 2019-2-28 17:07
还有就是如果要提交的话把system("pause")删掉




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2