C语言运行结果与预期不符,怎么也找不出原因

 #include<stdio.h>
int main(){
    int max(int x,int y);
    int num1,num2;
    scanf("%d,%d",&num1,&num2);
    printf("max=%d\n",max(num1,num2));
}
int max(int x,int y){
    if(x>y) return x;
    else return y;
}

赋值时‘,’一定要加上去,如果scanf格式输入有误的话系统会自动赋值,结果就会出现错误。。。我只是打个酱油,不用正确回答

用例是什么,预期是什么,实际结果是?

你得通过指针的形式来实现两个数的大小比较和交换,已解决~

#include<stdio.h>
#include <stdlib.h>
int main(){
    int max(int *x,int *y);
    int num1,num2;
    scanf("%d,%d",&num1,&num2);

    printf("max=%d\n",max(&num1,&num2));

    system("pause");
    return 0;
}

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

楼主,不好意思,上面的代码弄错了,现在这个可以了

 #include<stdio.h>
#include <stdlib.h>
int main(){
    int max(int x,int y);
    int num1,num2;
    int big;
    scanf("%d,%d",&num1,&num2);

//  printf("max=%d\n",max(&num1,&num2));
    big = max(num1,num2);
    printf("big = %d\n",big);
    system("pause");
    return 0;
}

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

不知道你想要什么样的输出?
题目能看出来是输出两个数中较大的那个数
图片

你的代码应该是没有什么问题的,只是在赋值时一定要用“,”分割开,例如1,2这样,使用scanf进行输入的时候尤其注意

代码没问题,可能没有切换成英文输入