...实现求三个数的最大值(任意输入三个数,找出最大的数,并输出该最大...
发布网友
发布时间:2024-03-16 19:46
我来回答
共4个回答
热心网友
时间:2024-03-16 23:38
#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,显然是不对的。
热心网友
时间:2024-03-16 23:38
#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);
}
热心网友
时间:2024-03-16 23:41
这是用三目运算符去做的,效率更好
#include<stdio.h>
void main()
{ int a,b,c ,max;
max = a>b?(b>c?b:c):(a>c?a:c);
printf("最大数为:%d",max);
}
热心网友
时间:2024-03-16 23:42
#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();
}