c语言比较三个数字大小

img


我室友写的,为什么运行结果是这样子的,不懂不懂
,CPU烧了,九命

注意 没有 x>y>z 这种写法。所以你的判断条件全部失效。返回f f是整形,默认为0。所以不管你输入任何数字都是0

【以下回答由 GPT 生成】

这个程序的问题在于函数max()只有在三个数都不相等的情况下才能正确得出最大值,而如果有两个或三个数相等,它将无法正确工作。因此,我们需要对这个函数进行修改。

以下是一个修改后的程序,可以正确地比较三个数字的大小:

#include <stdio.h>

int max(int x, int y, int z) {
    int f;
    if (x >= y && x >= z)
        f = x;
    else if (y >= x && y >= z)
        f = y;
    else if (z >= x && z >= y)
        f = z;

    return f;
}

int main() {
    int a, b, c;
    printf("请输入三个数字:");
    scanf("%d %d %d", &a, &b, &c);
    int i = max(a, b, c);
    printf("最大值为:%d\n", i);

    return 0;
}

在这个修改后的程序中,我们将max()函数中的条件改为了大于等于(>=),这样即使有两个或三个数相等,函数仍能正确返回最大值。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^