鱼C论坛

 找回密码
 立即注册
查看: 1531|回复: 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的值。因此,正确的代码如下:
#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;

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

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

以下是修改后的代码:
#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("三个值都相等");    }     else if (a != b && b != c && c != a) {        puts("三个值各不相同");     }    else {        puts("有两个值相等");     }    return 0;  }
经过修改后的代码可以正确地输出输入的三个整数之间的关系。在修改代码时需要仔细检查每一行代码,确保语法正确、逻辑清晰。

球一个最佳答案谢谢啦!这对我非常重要!
回答可能有误,多多谅解!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

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

以下是修正后的代码:
#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("三个值都相等");
    } else if (a != b && b != c && c != a) {
        puts("三个值各不相同");
    } else {
        puts("有两个值相等");
    }
    
    return 0;
}

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

希望能帮助到你!如果有任何其他问题,请随时提问。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 22:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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