求助: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);
}
我这里执行下面的代码正常:
#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);
} 你这个程序当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);
}
巴巴鲁 发表于 2020-7-18 16:23
你这个程序当xy的话,直接返回p = x,不会让p与z比较大小了
好的明白!感谢{:10_257:}
页:
[1]