搜索C中的最大整数(超过2)

如何在一组整数中搜索最大数字(cat1,cat2,cat3,cat4)我对此进行编码,考虑每个替代方案,除了==替代方案(更长的代码!!)是否更有效,或更简单这样做的方法,而不是为每个可能的解决方案制作IF声明? 如果数字的数量更大? (例如10 !!!!)谢谢。 这是我的代码

if (cat1 > cat2 && cat1> cat3 && cat1>cat4) printf("cat 1 is the biggest", cat1); if (cat2 > cat1 && cat2> cat3 && cat2>cat4) printf("cat 2 is the biggest", cat2) ; if (cat3 > cat1 && cat3> cat2 && cat3>cat4) printf("cat 3 is the biggest", cat3) ; if (cat4 > cat1 && cat4> cat2 && cat4>cat3) printf("cat 4 is the biggest", cat4); 

使用数组非常简单:

 int data[10] = // ... your ints; int max = data[0]; for (int i = 1 ; i < 10 ; i++ ) if (data[i] > max ) max = data[i]; 

此函数接受一个数组及其大小作为输入。

 int biggest(int *nn,int n) { int rv = *nn; for(++nn,--n;n;--n,++nn) if(rv<*nn) rv = *nn; return rv; } 

只需使用一个数组。 以下是查找任意大小的数组的最大数量的示例。

 int main(){ int size,i,biggest; int *a = NULL; printf("\nEnter the size of the array: "); scanf("%d",&size); a = malloc(size * sizeof(int)); printf("\nEnter %d elements in to the array: ”, size); for(i=0; i 
 int MAX(int a, int b) { return a > b ? a : b; } // later on... return MAX(cat1, MAX(cat2, MAX(cat3, cat4)));