Непредсказуемый результат в подсчете пар целых чисел - PullRequest
0 голосов
/ 26 апреля 2019

Задача программы - подсчитать, сколько раз есть два последовательных целых числа, их значение превышает 40. Итак, проблема здесь в том, что результат программы неверный.

Чтобы решить эту проблему, я попытался изменить некоторые начальные значения и исследовал механизм кода, но ошибок не заметил. Код ниже.

#include <stdio.h>
int main() {

    int a,i,e=0;
    int A[31];
    for(i=0; i<=30; i++) {
        scanf("%d",&a);
        A[i]=a;
}
    if (A[i]>40 && A[i+1]>40) {
        e=e+1;
    }
    printf("%d",e); 

    return 0;
}

Ожидаемый результат, если мы введем целое число 41 во всех 31 местах матрицы, результат должен быть 30, а результат всегда равен нулю (0)

Заранее благодарю за помощь.

1 Ответ

1 голос
/ 26 апреля 2019

«оператор if» должен быть в цикле.И, пожалуйста, примите во внимание условие 2-го цикла, что я установил его как «<30» вместо «<= 30», потому что ваша программа хочет сравнить следующую переменную вместе как «if (A [i]> 40 && A [i +»)1]> 40) ".

#include <stdio.h>
int main()
{
        int a, i, e = 0;
        int A[31];
        for (i = 0; i <= 30; i++) {
            scanf("%d", &a);
            A[i] = a;
        }

        for (i = 0; i < 30; i++){
            if (A[i] > 40 && A[i + 1] > 40)
                e = e + 1;
        }
        printf("%d", e);

        return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...