请各位大神帮我这个菜鸟看看这个C语言代码的问题。

因为我是大一新生刚学C语言,老师现在也没交很多,现在想按最笨的思路来写个代码来比较10个数字的大小。为什么无法正确比较大小,如果是1 2 3 4 5 6 7 8 9 10,则输出1,反过来输入十个数字却输出10。我敲的代码如下,很笨拙,请各位大神指正!照我这个笨思路修改成正确的,如果能再给我一个更简单的解决方案,那我感激不尽!
#include<stdio.h>
int main()
{
int max(int x,int y);
int a,b,c,d,e,f,g,h,i,j;
int t;
printf("输入10个数字\n");
scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);
t=max(a,b);
t=max(c,t);
t=max(d,t);
t=max(e,t);
t=max(f,t);
t=max(g,t);
t=max(h,t);
t=max(i,t);
t=max(j,t);
printf("最大值:%d\n",t);
}
int max(int x,int y)
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}

代码本身没有问题

注意输入时使用英文的逗号分隔数字,一定要是英文的,不要写成中文逗号了

追问

你好,我 发现我 错误的原因是再输入数字时用空格隔开,请问什么用逗号隔开什么时候用空格隔开呢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-15

代码无错。你输入时必须用英文逗号隔开数据,因为你在scanf的控制符之间写了英文逗号。建议把那些逗号删除,输入时就可以用空格或回车来隔开数据了。其实写简单点更好——

#include "stdio.h"
int main(int argc,char *argv[]){
int t,n,m;
printf("输入10个数字\n");
for(t=0;t<10;t++){
scanf("%d",&n);
if(m<n || t==0)
m=n;
}
printf("The MAX is %d\n",m);
return 0;
}

运行样例:

相似回答