鱼C论坛

 找回密码
 立即注册
查看: 1870|回复: 3

[已解决]这个代码错在哪?

[复制链接]
发表于 2023-9-24 21:23:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

int main()
{
        int a,b,c;
       
        printf("请输入三个整数。\n 整数A:");
        scanf("%d",&a);
       
        printf("整数B:") ;
        scanf("%d",&b);
       
        printf("整数C:");
        scanf("%d",c);
       
       
       
       
       
       
       
       
        if(a==b&&b==c)
        {
        puts("三个值都相等");
        }
        if(a!=b)
        {
                if(b!=c&&c!=a){
                        puts("三个值各不相同");
                }
                else {
                puts("有两个值相等");
        }
       
        }
       
       
       
       
         
        return 0;
       
}
最佳答案
2023-9-24 21:23:22
在第16行中,应该使用 &c 而不是 c 来读取整数C的值。因此,正确的代码如下:

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int a,b,c;

  5.     printf("请输入三个整数。\n 整数A:");
  6.     scanf("%d",&a);

  7.     printf("整数B:");
  8.     scanf("%d",&b);

  9.     printf("整数C:");
  10.     scanf("%d",&c);

  11.     if(a==b&&b==c)
  12.     {
  13.         puts("三个值都相等");
  14.     }
  15.     if(a!=b)
  16.     {
  17.         if(b!=c&&c!=a){
  18.             puts("三个值各不相同");
  19.         }
  20.         else {
  21.             puts("有两个值相等");
  22.         }

  23.     }

  24.     return 0;

  25. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-9-24 21:23:22 | 显示全部楼层    本楼为最佳答案   
在第16行中,应该使用 &c 而不是 c 来读取整数C的值。因此,正确的代码如下:

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int a,b,c;

  5.     printf("请输入三个整数。\n 整数A:");
  6.     scanf("%d",&a);

  7.     printf("整数B:");
  8.     scanf("%d",&b);

  9.     printf("整数C:");
  10.     scanf("%d",&c);

  11.     if(a==b&&b==c)
  12.     {
  13.         puts("三个值都相等");
  14.     }
  15.     if(a!=b)
  16.     {
  17.         if(b!=c&&c!=a){
  18.             puts("三个值各不相同");
  19.         }
  20.         else {
  21.             puts("有两个值相等");
  22.         }

  23.     }

  24.     return 0;

  25. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-24 21:23:29 | 显示全部楼层
> 问题:以下代码有什么错误?如何解决?

以下是代码中存在的问题:

1. 在第22行,scanf("%d", &c) 应该为 scanf("%d", c) ,即应该传递变量地址。

2. 在第24到34行,if 语句中的条件判断不完整,没有考虑 ac 是否相等的情况,需要增加一些判断条件。

以下是修改后的代码:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int a, b, c;
  5.     printf("请输入三个整数。\n 整数A:");
  6.     scanf("%d", &a);
  7.     printf("整数B:") ;
  8.     scanf("%d", &b);
  9.     printf("整数C:");
  10.     scanf("%d", &c);
  11.     if (a == b && b == c) {
  12.         puts("三个值都相等");
  13.     }
  14.     else if (a != b && b != c && c != a) {
  15.         puts("三个值各不相同");
  16.     }
  17.     else {
  18.         puts("有两个值相等");
  19.     }
  20.     return 0;  
  21. }
复制代码

经过修改后的代码可以正确地输出输入的三个整数之间的关系。在修改代码时需要仔细检查每一行代码,确保语法正确、逻辑清晰。

球一个最佳答案谢谢啦!这对我非常重要!
回答可能有误,多多谅解!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-24 21:23:35 | 显示全部楼层
在你给出的代码中,有一个问题导致编译错误和逻辑错误:

1. 在 scanf 函数的第三个输入参数 %d 前漏掉了 & 符号,导致没有正确传递变量的地址。这会导致编译错误。
   错误行:scanf("%d", c);
   正确行:scanf("%d", &c);

此外,你的代码存在逻辑错误问题:

2. 当检查是否有两个值相等时,使用了嵌套的 if 语句。然而,你的逻辑条件和输出不完整,因为只有在 a!=b 的情况下才会执行内部的 if 语句块。
   你可以通过修改逻辑条件来解决这个问题。

以下是修正后的代码:

  1. #include <stdio.h>

  2. int main() {
  3.     int a, b, c;
  4.    
  5.     printf("请输入三个整数。\n整数A:");
  6.     scanf("%d", &a);
  7.     printf("整数B:");
  8.     scanf("%d", &b);
  9.     printf("整数C:");
  10.     scanf("%d", &c);
  11.    
  12.     if (a == b && b == c) {
  13.         puts("三个值都相等");
  14.     } else if (a != b && b != c && c != a) {
  15.         puts("三个值各不相同");
  16.     } else {
  17.         puts("有两个值相等");
  18.     }
  19.    
  20.     return 0;
  21. }
复制代码


现在代码中的问题已经修复,将可以顺利编译和运行,并且给出正确的结果。

希望能帮助到你!如果有任何其他问题,请随时提问。
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 09:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表