使用cin输入数组值

时间:2018-06-24 02:31:17

标签: c++ arrays cin

我正在尝试将一个变量用作数组的大小声明符。我在将数据放入数组时遇到麻烦。然后将发生的事情是,我将数组划分为平均值并返回一个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 :(得分:3)

您的代码中有一些关键问题,这是可以完成的工作:

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