【发布时间】:2017-11-26 16:46:46
【问题描述】:
我得到了“n”个学生的名字,然后是“k”个他们得分的任务。每个任务都有自己的系数(例如,如果有 4 个任务,则有 4 个系数:0.2;0.3;0.3;0.4),因此系数的数量也是 'k'。我的工作是:
- 读取“n”(学生数量)和“k”(任务数量);
- 读取所有系数(稍后我将不得不与每个学生的每个分数相乘);
-
阅读每个学生的具体姓名和“k”分数,正如我所说,将每个分数乘以系数。系数是静态的。之后,我必须将我为 1 名学生所做的所有 4 次乘法相加,这将是他的最终成绩。如何为 name[0] 分配 finamark[0] 等等?我无法获得最终分数
#include <iostream> using namespace std; int main(){ int n, k, b = 0; double coefficients[10], marks[10], final[30] = {0}; string name, names[30]; cin >> n >> k; //reading the amount of students n tasks for(int i = 0; i < k; i++){ //reading coefficients cin >> coefficient[i]; } for(int i = 0; i < n; i++){ //reading names cin.ignore(80, '\n'); getline(cin,name); names[i] = name; for (int j = b; j < k; j++){ //reading marks cin >> marks[j]; marks[j] *= coefficient[j]; // trying to get the final mark for each students finalmark[j] += marks[j]; } b += k; k += k; } }
【问题讨论】:
-
使用 std::vector 代替数组。
-
标题说数组和循环,那么什么到底是什么问题?
-
恕我直言,更好的方法是使用结构向量而不是多个数组。示例:
struct Course { std::string name; double coefficient; double mark;};. -
请使用输入数据样本的文本编辑您的帖子。