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

时间:2012-10-08 20:08:22

标签: c search numbers

如何在一组整数(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);  

4 个答案:

答案 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)));