C-将未初始化的变量传递给数组元素

时间:2018-12-09 10:13:46

标签: c arrays loops initialization

我想知道如何处理传递给另一个变量的未初始化变量。

我正在尝试编写一个程序,在该程序结束时,用户输入所有数字后,将显示最高和最低数字。

int n[5], i, small, large;

for(i=0; i < 5; i++){

    printf("Enter number: ");
    scanf("%d", &n[i]);

    if(n[i] >= large){
        large = n[i];
    }
    else if (n[i] <= small){
        small = n[i];
    }

这将产生正确的输出(指出最小的数字),但是对于最大的数字,将产生一个随机数。

除了将大号设置为0(当输入负数时会使程序不准确)之外,该如何处理?

谢谢。

2 个答案:

答案 0 :(得分:0)

从概念上讲,简单的方法是将large初始化为-Inf,并将small初始化为+Inf。由于您使用的是int值,因此只需使用int

中最大和最小的limits.h
#include <limits.h>
...
int n[5], i, small = INT_MAX, large = INT_MIN;

答案 1 :(得分:0)

您必须将large初始化为非常小的值,并将small初始化为非常大的值。您可以使用limits.h

中定义的限制

int small = INT_MAX, large = INT_MIN;