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