用C语言编写:设计一个程序实现求三个数的最大值(任意输入三个数,找出最大的数,并输出该最大的数值)

 我来答
zerolzb
2010-05-26 · TA获得超过1881个赞
知道小有建树答主
回答量:661
采纳率:66%
帮助的人:536万
展开全部
#include<stdio.h>
main()
{
int a,b,c,max;
printf("请任意输入三个数:\n"); /*这里类型说明为int整型,可自行进行修改*/
scanf("%d%d%d",&a,&b,&c);
max=a>b?a:b;
max=max>c?max:c;
printf("The max number is %d.",max);
}

这里探讨一下楼上的回答,首先非常肯定这位兄台使用条件表达式的三目运算,使用条件表达式就本题而言效率更高。但是个人认为这一语句:
max = a>b?(b>c?b:c):(a>c?a:c); 存在问题。
条件表达式的一般形式为:
表达式1? 表达式2:表达式3
其求值规则为:如果 表达式1 的值为真,则以 表达式2 的值作为整个条件表达式的值,否则以 表达式3 的值作为整个条件表达式的值。
根据这一求值规则,我们来分析上面这一语句,如果a>b为真,则max得到的值将是(b>c?b:c)这一表达式的值,但是这一表达式的值是什么呢?当然是b或者c,如果得到的是c的话,那么c就一定会比a大吗?当然无法判定了,例如我们假设a>c>b,按这一语句判断将得到结果是C,显然是不对的。
李少莫轻狂
2012-05-19
知道答主
回答量:25
采纳率:0%
帮助的人:8.2万
展开全部
#include <stdio.h>
main()
{
int a[3];
int i,max;
printf("please input three numbers:\n");{我用的是数组,所以输入数字的时候就不用输入,了,输入一个数字之后只需敲一下空格,然后输入下一个数字}
for(i=0;i<3;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=1;i<=2;i++)
if(a[i]>a[0])
max=a[i];
printf("max is:%d",max);
getch();

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
562738607
2010-05-26 · TA获得超过1260个赞
知道小有建树答主
回答量:1015
采纳率:0%
帮助的人:891万
展开全部
这是用三目运算符去做的,效率更好
#include<stdio.h>
void main()
{ int a,b,c ,max;
max = a>b?(b>c?b:c):(a>c?a:c);
printf("最大数为:%d",max);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jklmnlkevin
2010-05-26 · TA获得超过532个赞
知道答主
回答量:314
采纳率:0%
帮助的人:262万
展开全部
#include<stdio.h>
int max(int a, int b)
{
if( a > b ) return a;
if( a <= b ) return b;
}

void main()
{
int a;
int b;
int c;
int TheMax;
scanf("%d%d%d",&a,&b,&c);
TheMax = max(a,max(b,c));
printf("%d\n",TheMax);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式