如何在一组整数(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);
答案 0 :(得分:3)
使用数组非常简单:
int data[10] = // ... your ints;
int max = data[0];
for (int i = 1 ; i < 10 ; i++ )
if (data[i] > max ) max = data[i];
答案 1 :(得分:1)
只需使用数组。以下是查找任意大小数组的最大数量的示例。
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<size; i++)
scanf("%d",&a[i]);
// assume the first number is the biggest
biggest=a[0];
// iterate on the array and update the biggest number if the current value is bigger than 'biggest'
for(i=1; i<size; i++){
if( biggest < a[i])
biggest=a[i];
}
printf("\nYour biggest number is: %d",biggest);
free(a)
return 0;
}
答案 2 :(得分:1)
此函数接受一个数组及其大小作为输入。
int biggest(int *nn,int n) {
int rv = *nn;
for(++nn,--n;n;--n,++nn) if(rv<*nn) rv = *nn;
return rv;
}
答案 3 :(得分:0)
int MAX(int a, int b) {
return a > b ? a : b;
}
// later on...
return MAX(cat1, MAX(cat2, MAX(cat3, cat4)));