Использование cin для ввода значений массива - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь взять переменную, использующую ее для объявления размера в массив. У меня проблемы с получением данных в массив. Тогда произойдет то, что я разделю массив на среднее значение и верну значение char. Единственная проблема, с которой я столкнулся - это ввод данных в массив. Заранее спасибо, вот код.

#include <iostream>

using namespace std;

int average(int&);

char grade(int);

int main()
{
    int array = {};
    int numgrades;
    int total = 0;

    cout << "Enter the number of grades" << endl;
    cin >> numgrades;

    for (int i = 0; i < numgrades; i++) {
        cout << "Enter a numeric grade between 0 - 100" << endl;
        cin >> i;
        total += i;

    }

    int average = total / numgrades;


    char result = grade(average);


    cout << "The grade is " << result << "." << endl;

    return 0;
}

char grade(int avg)
{
    if (avg >= 90) {
        return 'A';
    }
    else if (avg >= 80 && avg < 90) {
        return 'B';
    }
    else if (avg >= 70 && avg < 80) {
        return 'C';
    }
    else if (avg >= 60 && avg < 70) {
        return 'D';
    }
    else
    {
        return 'F';
    }

}

1 Ответ

0 голосов
/ 24 июня 2018

У вас есть некоторые критические проблемы в вашем коде, вот что сделает работу:

cin >> numgrades;

int *array = new int[numgrades] ;

for (int i = 0; i < numgrades; i++) {
    cout << "Enter a numeric grade between 0 - 100" << endl;
    cin >> array[i];
    total += array[i];

}

Важные части - это создание массива динамически с использованием оператора newи передавая желаемый размер.Также ваша проблема заключалась в переопределении i строкой cin >> i, вместо этого вам нужно сохранить значение в массиве в i, например, cin >> array[i].

Чтобы больше узнать о работе с динамическими данными и массивами в C ++, я рекомендую вам прочитать о std :: vector .

...