я хочу найти максимум, минимум и среднее, но это дает мне что-то за 0 - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь записать в массив чисел больше 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;
 }

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Вам по крайней мере необходимо исправить возможный выход за пределы:

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

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

За пределами доступа следует исправить:

arr_first[i] = number; 
0 голосов
/ 15 января 2020

хорошо, у вас много проблем в этом коде. Ваш первый l oop должен быть таким:

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

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

вы должны использовать i ++ как этот. после этого вы не должны ставить «сумму» в l oop!

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

этот должен быть за пределами этого l oop.

, а для вас max и min:

if (arr_first[j] > max )

так и должно быть. Вы написали это с ног на голову

И мне очень жаль, я не могу говорить по-английски.

...