使用 cin 输入数组值
Using cin to input array values
我正在尝试将一个变量用于数组中的大小声明符。我在将数据放入数组时遇到问题。然后会发生的是,我会将数组分成平均值和 return 一个 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';
}
}
您的代码中存在一些严重问题,这将解决问题:
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
语句并传递希望的大小。此外,您的问题在于 cin >> i
行覆盖了 i
,而您需要将值保存到 i
处的数组,就像这样 cin >> array[i]
。
有关在 C++ 中使用动态数据和数组的更多方法,我建议您阅读 std::vector。
我正在尝试将一个变量用于数组中的大小声明符。我在将数据放入数组时遇到问题。然后会发生的是,我会将数组分成平均值和 return 一个 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';
}
}
您的代码中存在一些严重问题,这将解决问题:
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
语句并传递希望的大小。此外,您的问题在于 cin >> i
行覆盖了 i
,而您需要将值保存到 i
处的数组,就像这样 cin >> array[i]
。
有关在 C++ 中使用动态数据和数组的更多方法,我建议您阅读 std::vector。