如何在c中找到最大和最小的数字

时间:2014-10-03 22:17:03

标签: c

我找到了特定阵列大小的解决方案。 但是,如何在不要求输入数组大小的情况下获取最大和最小的数字?感谢

e.g。当我输入数字,如1,0,-1,5,43,65时,它只返回65和-1。我想忽略输入数组大小的步骤,对于这种情况是6。

#include<stdio.h>
int main(){
  int a[50],size,i,big,small;

  printf("\nEnter the size of the array: ");
  scanf("%d",&size);
  printf("\nEnter %d elements in to the array: ", size);
  for(i=0;i<size;i++)
    scanf("%d",&a[i]);

  big=a[0];
  for(i=1;i<size;i++){
    if(big<a[i])
      big=a[i];
  }
  printf("Largest element: %d",big);

  small=a[0];
  for(i=1;i<size;i++){
    if(small>a[i])
      small=a[i];
  }
  printf("Smallest element: %d",small);

  return 0;
}

2 个答案:

答案 0 :(得分:3)

我会再向你走。你首先不需要一个数组,从而使尺寸输入避免变得微不足道(没有必要,因为没有数组):

#include <stdio.h>

int main()
{
    int val;

    printf("Enter number: ");
    fflush(stdout);

    if (scanf("%d", &val) == 1)
    {
        int big = val, small = val;
        do
        {
            if (big < val)
                big = val;
            if (val < small)
                small = val;

            printf("Enter number: ");
            fflush(stdout);

        } while (scanf("%d", &val) == 1);

        printf("Largest element: %d\n",big);
        printf("Smallest element: %d\n",small);
    }

    return 0;
}

答案 1 :(得分:0)

可以定义一个宏,让您计算数组中的条目数

#define ArrayLength(arr) (sizeof(arr)/sizeof(arr[0]))
...
int x;
for(x=0;x<ArraLength(myArray);x++){...}