c程序设计问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 18:48:00
int max(int x, int y)
{ int z ;
if (x>y) z = x; else z = y;
return(z);
}
main( )
{ int a,b,c;
scanf("%d, %d",&a,&b);
c = max(a,b);
printf("max = %d\n",c);
}

为什么我输入这个
执行命令的结果是 max=3129?

请详细解答一下 3KS

运行此程序,会让你输入两个数:
12,13
然后查看运行结果:
我看到的就是:
13
本来想把运行的结果图贴上来,可是不知怎样贴,只好作罢!
程序应该没有问题,不过你也可以小改一下试试!
int max(int x, int y)
{ int z ;
if (x>y) z = x; else z = y;
return(z);
}
main( )
{ int a=0,b=0,c=0; /*对这三个变量付初值*/
scanf("%d, %d",&a,&b);
c = max(a,b);
printf("max = %d\n",c);
}

整个程序的意思是要你输入两个数, 然后打印出大的那个.
你输入了什么了?

加上头文件 stdio.h,整个程序没问题

程序本身没有错误
max=3129 表示输入有错误
正确输入格式为“第一个数字(int型)”然后“逗号”然后“第二个数字(int型)”

不用看了,不是初值的问题,肯定是你自己没有按照格式输入!
导致的结果是只取到了一个值,所以比较的时候max函数随机赋的值了.
如果不信的话,你可以加一句代码验证!
在调用max之前,printf("a=%d,b=%d",a,b);就见分晓了!!