2016中国能源消耗量:求三个数中的最大值!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 04:49:53
void main()
{float x,y,z;
printf("please input three numbers:");
scanf("%d%d%d",&x,&y,&z);
if(x>y&&x>z)
printf("max=x=%d\n",x);
else if(y>x&&y>z)
printf("max=y=%d\n",y);
else if(z>x&&z>y)
printf("max=z=%d\n",z);
printf("**end**\n");
}

晕……其实楼上的包括楼主都错了……忽略了一个最基本的东西!!!
float x,y,z;
定义变量x,y,z的时候是float!
scanf("%d%d%d",&x,&y,&z); printf("max=x=%d\n",x);
输入输出函数中是%d????我想这也是楼主提出这个问题的初衷吧……
对,楼主的方法是有点麻烦,不过这是最基本的求大数的思想呵呵。如果是比较n个数的话,我想用临时变量temp也麻烦……
我也写个求10个整数中最大数程序吧。希望对楼主有帮助……
#include <stdio.h>
int main(void)
{
int a[10],i,j,temp,max;
printf("\nInput 10 numbers\n");
for(i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
max=i;
for(j=i+1;j<10;j++)
if(a[max]>a[j]) max=j;
{
temp=a[i];
a[i]=a[max];
a[max]=temp;
}
}
printf("maxnumber=%d",a[max]);
getch();
return 0;
}

简单做:
定义数组,将三个数读入数组,利用“打擂”法!
将a[i]赋值给MAX,依次使用后面的元素与MAX比较,大的话,调换,小或者相等的话,下一个!
max=a[i];
for(i=0;i<3;i++)
max=max<a[i]?a[i]:max;

max最大,且这个程序可以比较多个数的大小!

楼上的说的对
主要的问题是没有考虑到相等的情况
如果两个较大的数相同。如5,5,4 或者三个数相同5,5,5
就得不到正确答案

你这么写有BUG的
如果3个数字相同,就完蛋了,要写成>=

定义一个临时值tmp,遍历集合中每一个元素并比较,取较大着值给tmp,最后得到的tmp就是最大的
你的办法有3个还好办,有1000个数呢?

printf("max=y=%d\n",y);