这样的情况是最小值没有存入数组吗?

img


那应该怎么办呢?max=min=scr(0)不就是把他们都存进去了吗。

回答:你的代码逻辑没啥问题,主要就是初始化的时候没用对最大值最小值进行很好的设定,一是没用对进行清0,二是那时候数组里面的值开头的值不能够作为最小值或者最大值,应该选择int类型的最大值和最小值作为最小值和最大值
代码如下:

# include <stdio.h>

int main()
{
    int src[10] = { };
    int i;
    for (i = 0; i < 10; i++)
    {
        printf("%d ", src[i]);
    }
    printf("\n");
    int sum = 0, max, min;
    float ave;
//    max = min = src[0];
    max = -100000;
    min = 100000;

    for (i = 0; i < 10; i++)
    {
        printf("输入第%d个值: ", i + 1);
        scanf("%d", &src[i]);
        printf("%-4d ", src[i]);
        printf("\n");
        sum += src[i];
        printf("和是: %d", sum);
        if (src[i] > max)
        {
            max = src[i];
        }
        if (src[i] < min)
        {
            min = src[i];
        }
        printf("  最大值是: %d  最小值是: %d", max, min);
        printf("\n");
    }
    ave = sum / 1.0;
    printf("平均值是: %.2f", ave);
}

img

此时你还没有给数组赋值呢,先给数组赋值再令max=min=scr[0]