为什么输出的结果不是最大而是先输入的值呢

img

按照谭浩强c程序设计第五版书上打的,书上的例子是8和5,结果max=8,到我自己运行的时候结果永远是第一个,刚学c语言三天,不知道哪里出了问题

应该是因为输入参数时格式导致了错误,在命令行输入参数时,用逗号分隔两个输入的参数即可,因为如果不按这个格式输入参数,b获取值就会失败,其值是随机的,所以会导致错误,测试如下:

#include <stdio.h>

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

int max(int x,int y){
    
    int z;
    if(x>y) z=x;
    else z=y;
    
    return (z);
}

img