如果按你的方法来比较大小,而且是7个数字,也就是a~g,你后面少比较了g,而且最后的j也未必是最大,需要改为:
main()
{
int a,b,c,d,e,f,g,h,j;
scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g); //这里读到g即可,后面没用的
a = max(a,b); //不能把g的值覆盖了,7个数,g还有存储数据呢
h = max(c,d);
j = max(e,f);
a = max(a,g); //还要和g比较
h = max(a,h); //接着还要比较a和h谁大
j = max(h,j); //这个才是最后结果,最大的一个
printf("abcdef da shi%d",j);
getch();
}
如果要比较大小的数比较多,建议使用数组存储,用个for循环就搞定了,如下:
#include
void main()
{
int i, a[7], max = -32768;
for (i = 0; i < 7; i++)
{
scanf ("%d", a[i]);
if (a[i] > max) max = a[i];
}
printf ("max number is %d\n", max);
}
思路:定义一个返回值为int的比较函数fun,参数有两个,一个是需要比较的数组a,另一个是数组a的大小,函数返回的是数组中最大的那个数。
参考代码:
//参考代码
#include
#define N 5
int fun(int a[],int n){
int i,max;
max=a[0];
for(i=1;iif(max max=a[i];
}
return max;
}
int main()
{
int a[N],i,max;
for(i=0;iscanf("%d",&a[i]);
max=fun(a,N);
printf("%d",max);
return 0;
}
/*
运行结果:
5 4 6 8 7
8
*/
用数组,把你输入的要进行比较的7个数字放到一个数组,再用冒泡法排序就能搞定。
a=max(a,b);
c=max(c,d);
e=max(e,f);
g=max(g,h);
a=max(a,c);
e=max(e,g);
a=max(a,e);
j=max(j,a);
假定是比较整数
int sortab(int a,int b)
{int c ;
if(a>b) c=1;
else if(a==b)c=0;
else c=-1;
return c;
}
给定2数,如果前数大得到1,后数大得到-1,相等得到0