调用函数比较三个数的大小,运行结果是错误的

输入1 2 3
输出的是51

不知道哪一步出错了,请帮忙看一下,万分感谢!万分感谢!🙏

img

为啥第三个是%c呢?
由于你用 %c格式,导致输入的3被当作为字符'3',而不是整数3。而字符'3'的ASCII码是51,所以你求得最大值是51

C 为什么对应 %c。。。。。

img

scanf那里c的输入为什么用了%c? 改成%d可能会对吧

scanf("%d %d %c",&a,&b,&c)改为scanf("%d %d %d",&a,&b,&c)就可以了,因为在scanf函数里面,%c是读取一个字符,%d才是读取一个整数,所以%c是写错了,修改如下:

#include <stdio.h>

int max(int x,int y);

int main(){
    
    int a,b,c,d,e;
    scanf("%d %d %d",&a,&b,&c);
    
//    printf("a=%d,b=%d,c=%d\n",a,b,c);
    d = max(a,b);
    e = max(d,c);
    printf("%d",e);
    return 0;
} 


int max(int x,int y){
    int z;
    z= x>y?x:y;
    return z;
}

img

金典abc%a%b%c