c语言 输入三个数 按大小排列 输出最大值,看下错在哪了。。。郁闷中

#include<stdio.h>main(){inta,b,c,max;printf("pleaseinputa,b,cdon'tlike1,1,1\n");scanf... #include<stdio.h>
main()
{
int a,b,c,max;
printf("please input a,b,c don't like 1,1,1\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{ max=a;}
else if(max=b)
{ printf("error:a=b\n"); }
else
{ max=b;}
if(max>c)
{ printf("the max is%d\n",max);}
else if(max=c)
{ printf("error: a or b = c\n");}
else{ printf("the max number is %d\n",c); }
}
展开
 我来答
niminrenshi
2010-12-03 · TA获得超过5.9万个赞
知道大有可为答主
回答量:6291
采纳率:94%
帮助的人:4396万
展开全部
IF的嵌套太乱,并且输出了太多的无用信息。
三个排序,设为其a,b,c 思路就是:先比较 a,b,如果a>b 就把a,b调换;再比较a,c,如果a>c 就把a,c调换.这样一来,第一个数必为最小。最后比较二三个数b,c。
三个if语句大括号里面的语句功能都一样,都是把两个数互换。

下面的示例代码输出三个浮点数由小到大的排列。如只需输出最大,输出C即可。

#include<stdio.h>
main()
{
float a,b,c,t;
scanf("%f%f%f",&a,&b,&c);
if (a>b)
{
t=a;a=b;b=t;
}
if (a>c)
{
t=a;a=c;c=t;
}
if (b>c)
{
t=b;b=c;c=t;
}
printf ("the number's follow is %3.2f%.2f %.2f",a,b,c);
}
56432449
2010-12-03
知道答主
回答量:8
采纳率:0%
帮助的人:6.3万
展开全部
#include "stdio.h"
void main()
{
int a,b,c,max;
clrscr(); 清屏
printf("please input 3 number:"); 输入三个数
scanf("%d%d%d",&a,&b,&c); 赋值
if(a>b&&a>c) A同时大于B和C
max=a;
else 否则
if(b>a&&b>c) B同时大与A和C
max=b;
else 否则
if(c>a&&c>b) C同时大于B和C
max=c;
printf("The max is %d\n",max);
}

有小数点的话 改成float型 即可 它支持浮点运算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuning66688
2010-12-03 · 超过50用户采纳过TA的回答
知道答主
回答量:164
采纳率:0%
帮助的人:117万
展开全部
你的思路应该改一下更合理:首先把a值给max,然后b和max比较,如果b大就把b值给max,然后再拿c和max比较,c大就把c给max,最后输出max。
main()
{
int a,b,c,max;
printf("please input a,b,c don't like 1,1,1\n");
scanf("%d%d%d",&a,&b,&c);
max=a;
if(b>max)
max=b;(b要是小max不变)
else if (c>max)
max=c;
printf("the max is%d\n",max);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
岗少王
2013-02-28
知道答主
回答量:3
采纳率:0%
帮助的人:4197
展开全部
#include <stdio.h>
int main()
{
int a,b,c;
printf("请输入三个数:\n");
scanf("%d%d%d",&a,&b,&c);
if (a>b)
{
if (b>c)
{
printf("最大值为%d,最小值为%d\n",a,c);
}
if (b<c)
{
if (a>c)
{
printf("最大值为%d,最小值为%d\n",a,b);
}
else
{
printf("最大值为%d,最小值为%d\n",c,b);
}
}
}

if (a<b)
{
if (b<c)
{
printf("最大值为%d,最小值为%d\n",c,a);
}
if (b>c)
{
if (a<c)
{
printf("最大值为%d,最小值为%d\n",b,a);
}
else
{
printf("最大值为%d,最小值为%d\n",b,c);
}
}
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曲熙熙b8
2010-12-03 · 超过19用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:46.1万
展开全部
缺少一个返回语句,如果a=b,程序max会生成一个随机数,从而继续与后面的c比较,而不是退出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式