宇宙超级无敌霹雳旋风雷霆之最牛逼暴龙战士 2023-10-26 13:22 采纳率: 98%
浏览 34
已结题

清览题库里的编写的问题

img


输入三个数,输出三个数中的最大值,编好了感觉没问题,这个解答错误是什么意思

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-26 17:09
    关注

    【以下回答由 GPT 生成】

    问题分析:

    根据代码逻辑,我们可以发现代码中判断最大值的逻辑有问题。目前的代码逻辑是:

    1. a < bb < c 时,即 a 小于 b 且 b 小于 c,那么 c 是最大值。
    2. 否则,如果 a 小于 c,那么 b 是最大值。
    3. 否则,a 是最大值。

    但是这个逻辑是有问题的,我们可以通过一个简单的测试用例来验证: 输入:3, 2, 1 根据代码逻辑,输出应该是 3,但实际上输出的结果是 2。

    问题解决方案:

    正确的判断最大值的逻辑应该是比较 a、b 和 c 之间的大小关系,而不是判断与谁的关系更大。

    下面是修正后的代码:

    #include <stdio.h>
    
    int main() {
        int a, b, c;
        printf("请输入三个数: ");
        scanf("%d,%d,%d", &a, &b, &c);
    
        int max = a;  // 假设 a 是最大值
    
        if (b > max) {   // 找到更大的数,更新最大值
            max = b;
        }
    
        if (c > max) {
            max = c;
        }
    
        printf("max = %d\n", max);
    
        return 0;
    }
    

    这样修改后,无论输入的三个数大小如何,都可以正确地输出最大值。

    运行测试用例:输入 3, 2, 1 输出结果为:max = 3,结果正确。

    再运行其他测试用例,都可以得到正确的输出结果。

    综上所述,问题已解决。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月26日