Lam仔9527 发表于 2020-7-18 15:54:16

求助:max函数结果反向显示?

我在做max函数练习时,运行结果最后显示了一个最小值
结果展示:

input 3 number:
10 11 12
max=10

我苦思不得其解,希望大家帮忙指出其中问题,感激不尽!

源代码:

#include<stdio.h>
//主函数
int main()
{
        printf("%s\n","input 3 number:");
        int max(int x, int y, int z);
        int a, b, c, d;
        scanf_s("%d,%d,%d", &a, &b, &c);
        d = max(a, b, c);
        printf("max=%d\n", d);
        return 0;
}
int max(int x, int y, int z)
{
        int p;
        if (x > y)p=x;
        else
        {
                if (y > z)p=y;
                else p=z;
        }
        return(p);
}

zltzlt 发表于 2020-7-18 16:03:27

我这里执行下面的代码正常:

#include <stdio.h>
//主函数
int main()
{
    printf("%s\n", "input 3 number:");
    int max(int x, int y, int z);
    int a, b, c, d;
    scanf("%d,%d,%d", &a, &b, &c);
    d = max(a, b, c);
    printf("max=%d\n", d);
    return 0;
}
int max(int x, int y, int z)
{
    int p;
    if (x > y)
      p = x;
    else
    {
      if (y > z)
            p = y;
      else
            p = z;
    }
    return (p);
}

巴巴鲁 发表于 2020-7-18 16:23:31

你这个程序当x<y时可以成功运行
但如果x>y的话,直接返回p = x,不会让p与z比较大小了#include<stdio.h>
//主函数
int main()
{
         printf("%s\n","input 3 number:");
         int max(int x, int y, int z);
         int a, b, c, d;
         scanf("%d,%d,%d", &a, &b, &c);
         d = max(a, b, c);
         printf("max=%d\n", d);
         return 0;
}
int max(int x, int y, int z)
{
         int p;
         if (x > y)
         {
                 p=x;
         }
         else
         {
                 p = y;
         }
         if(p < z)
         {
                 p = z;
         }
         return(p);
}



Lam仔9527 发表于 2020-7-18 17:59:23

巴巴鲁 发表于 2020-7-18 16:23
你这个程序当xy的话,直接返回p = x,不会让p与z比较大小了

好的明白!感谢{:10_257:}
页: [1]
查看完整版本: 求助:max函数结果反向显示?