C语言中三个数求最大值,为什么输入三个数后总是输出第一个数 附代码

#include<stdio.h>
int max(int a,int b,int c)
{
int max=a;
if(max<b)
max=b;
if(max<c)
max=c;
return max;
}
void main()
{
int a,b,c,x;
scanf("%d,%d,%d",&a,&b,&c);
x=max(a,b,c);
printf("max=%d\n",x);
}

为什么输入三个数后 输出的永远是第一个数

这个问题在这里好多人都问过,其实就是你对scanf的理解不够造成的
scanf多个输入的话,scanf的格式和操作输入数据的格式要对应
这个你打印出abc看看是否正确读入即可
代码语法和逻辑没有看出问题
main最后少了一个return,这个你应该是用的vc编辑器所必须的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-27

1、C语言输入三个数,显示最大值是一个比较简单的程序,但是和具体的有些关系。
2、下面是求三个整数最大值的相关代码与与注释:

#include  <>
void main()
{
    int num1,num2,num3,maxNum;
    printf("请输入三个整数");
    scanf("%d%d%d",&num1,&num2,&num3);
    maxNum=num1;            //首先最大值等于第一个数
    if(maxNum<num2)        //如果小于第二个数就等于第二个数
        maxNum=num2;
    if(maxNum<num3)        //如果小于第三个数就等于第三个数
        maxNum=num3;
    printf("最大值等于%d\n",maxNum); //输出最大值并换行
}

第2个回答  2013-09-26

程序运行结果是对的,注意一下数据的输入格式

追问

你把24 放在第三个位置 输出就不是最大的了。。。

追答

没有问题呀,你看看

第3个回答  2013-09-26
scanf函数语法没掌握,这个函数的格式控制符里最好不要有分隔符,如果有,在录入数据时必须原样录入。
第4个回答  2013-09-26
#include<stdio.h>
int max(int a,int b,int c)
{
 int max=a;
 if(max<b)
  max=b;
 if(max<c)
  max=c; 
 return max;
}
void main()
{
 int a,b,c,x;
 scanf("%d,%d,%d",&a,&b,&c);//算法没啥问题啊,可能是你输入数据的时候,三个数据间没有加逗号导致
 x=max(a,b,c);
 printf("max=%d\n",x);
}

追问

我用的是空格。不行吗

追答

不行的,要用空格得将scanf里的逗号去掉,那样的话就是以空格、TAB、回车作为分隔符号。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网