我想找到最大值、最小值和平均值,但它为我分配了 0

i want to find maximum, minimum and average but it assigns me something for 0

我试着写一个大于54的数组,然后输出它的总和、平均值、最大值和最小值。我仍然尝试过 - 虽然通过但也失败了..(但我总是得到 0,我该如何解决? 谢谢!

{
    int arr_first [10];
    int min = arr_first[0];
    int max = arr_first[0];
    int sum = 0;
    int aritm_mean = 0;
    int number;
    int maxArrayNumber = 54;

    cout << "Fill the array (10 numbers): " << endl;

    for ( int i = 0; i < 10;  ) {
         cin >> number;

        if ( number < maxArrayNumber ) {
            arr_first[number];
            i++;
        }
    }


    for ( int j = 0; j < 10;  ) {
        sum = sum + arr_first[number];
        cout << "Sum = " << sum << endl;
        j++;
    }

    for ( int j = 0; j < 10; j++ ) {
        sum += arr_first[number];
        aritm_mean = sum / 10;
    }
    cout << "Arithmetic mean = " << aritm_mean << endl;


    for ( int j = 0; j < 10; j++ ) {
        if ( max >= arr_first[0] ) {
            max = arr_first[number];
        }
    }
   cout << "Max number = " << max << endl;

    for ( int j = 0; j < 10; j++ ) {
        if ( min <= arr_first[0] ) {
            min = arr_first[number];
        }
    }
   cout << "Min number = " << min << endl;
 }

您至少需要修复可能的越界访问:

for ( int i = 0; i < 10;  ) {
     cin >> number;

    if ( number < maxArrayNumber ) {
        arr_first[number];    //<-- possible out of bound access
        i++;
    }
}

越界访问,应通过以下方式解决:

arr_first[i] = number; 

好的,这段代码中有很多问题。 你的第一个循环应该是这样的:

for (int i = 0; i < 10;i++ ) {
cin >> number;

if (number < maxArrayNumber) {
    arr_first[i]=number;
}

你必须像那样使用 i++。 之后你不应该把 "sum" 放在循环中!

    cout << "Sum = " << sum << endl;

这个应该在那个循环之外。

你的最大值和最小值:

if (arr_first[j] > max )

应该是这样的。你把它写反了

我很抱歉我不会说英语。