关于#c语言#的问题:c语言比较两个数的大小

问题遇到的现象和发生背景 用c语言比较两个数的大小时,若输入的数较大比如5000000000000000000000和90,开始执行的结果不是出现这两个数中的较大数而是出现了第三个数,而若是输入5000000000,60,执行的结果是60
用代码块功能插入代码,请勿粘贴截图 #include

int main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&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);
}

运行结果及报错内容 若输入的数较大比如5000000000000000000000和90,开始执行的结果不是出现这两个数中的较大数而是出现了第三个数,而若是输入5000000000,60,执行的结果是60

运行过程中没有报错

我的解答思路和尝试过的方法 找不到解答思路
我想要达到的结果 输入任意两个数,无论大小都能比较出较大的那个数

首先。int装不下这么大的数。
用字符数组存每一位上的数,比较2个字符串长度,长的数大。一样长在从后向前挨个比较。

int的取值范围为:-2^31 ~ 2^31-1 ,即:-2147483648 ~ 2147483647,超过这个范围的值就会溢出,造成错误。
如果要存下比较大的数,可以通过字符串方式来保存。字符串长度大的数字就大,长度相等的话可以按照...千,百,十,个位顺序进行依次比较来判断大小。