我正在为学校做一个项目。情况就是这样:
您应该可以为 n 学生数量输入权重。计算学生的平均体重,并输出有多少学生的体重低于65公斤。
到目前为止,我有这个C ++源代码示例:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int number_of_students;
cout << "How many students would you like to add?: ";
cin >> number_of_students;
cout << endl;
cout << endl;
cout << "--------------------------------------------" << endl;
cout << "---------- ENTER STUDENT'S WEIGHT ----------" << endl;
cout << "--------------------------------------------" << endl;
cout << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
这基本上没什么,因为我现在被困了。我不知道当用户输入例如6名学生时,我可以添加6个新的重量变量。
修改
我可以进行平均体重计算,找出有多少学生体重低于65公斤。只有我坚持定义将添加多少学生的变量数量。 计算学生的平均体重,并输出有多少学生的体重低于65公斤。
答案 0 :(得分:6)
您需要将权重存储在可变大小的某种容器中。我们非常建议使用标准库中的容器,最典型的选择是std::vector
。
#include<vector>
#include<algorithm> //contains std::accumulate, for calculating the averaging-sum
int main(int argc, char *argv[])
{
int number_of_students;
cout << "How many students would you like to add?: ";
cin >> number_of_students;
cout << endl;
cout << endl;
cout << "--------------------------------------------" << endl;
cout << "---------- ENTER STUDENT'S WEIGHT ----------" << endl;
cout << "--------------------------------------------" << endl;
cout << endl;
std::vector<float> weights(number_of_students);
for(int i=0; i<number_of_students; ++i) {
cin >> weights[i];
}
cout << "Average is: " << std::accumulate(weights.begin(), weights.end(), 0.f)
/ number_of_students
<< std::endl;
return EXIT_SUCCESS;
}
答案 1 :(得分:6)
您可以在循环中使用一个变量。例如:
for (int i = 0; i < number_of_students; i++) {
int weight;
cin >> weight;
if (weight < 65)
result++;
}
答案 2 :(得分:1)
使用 new 运算符创建数组整数。
cin >> number_of_students;
int* x = new int[number_of_students];
您现在拥有一个size=number_of_students
数组。用它来存储重量。
编辑以这种方式处理它并不是最好的(处理内存泄漏等)。请注意评论和其他答案,尤其是使用 no intermediate storage 和 std::vector 的解决方案。
答案 3 :(得分:1)
可能没有问题,但你可以创建一个像
这样长度的数组int* a = new int[number_of_students];
for (int i = 0; i < number_of_students; i++) {
cin >> a[i];
}
希望它有所帮助并祝你好运......