有人可以指出我错在哪里吗?

Can someone pinpoint where I am wrong?

我正在尝试为我的平均成绩制作一个计算器,但我似乎找不到我错在哪里。

#include <iostream>
#include <conio.h>
#include <cmath>

using namespace std;

int main()
{
  string subject[17] = {"Biology", "French"}; //"Sport", "Ed.Antreprenoriala", "Geografie", "Mate", "TIC", "Psihologie", "Romana", "Chimie", "Fizica", "Istorie", "Engleza", "Religie", "Info", "Desen", "Muzica"};
    int mark, numberOfMarks;
    float sumaNote = 0;
    double average, averageSum = 0, finalAverage;

    for(int i=0; i<2; i++){

        cout << subject[i] << ":" << "\n";
        cout << "How many marks?" << "\n";
        cin >> numberOfMarks;

        for(int j=0; j < numberOfMarks; j++){
            cin >> mark;
            sumaNote += mark;
        }
        average = sumaNote / numberOfMarks;

        averageSum += round(average);
    }

    cout << endl;

    finalAverage = averageSum/2;

    cout << finalAverage;

    getch();
    return 0;
    }

它应该是这样工作的:
1)从字符串数组中取出一个主题; 2)询问我对该科目的分数; 3)平均分数之和; 4)重复直到超出数组元素(主题) 5) 获取所有科目平均值的总和,取平均值并输出答案;

***每个非自然平均值都需要向上或向下舍入(因此需要 round() 函数);

***一共17个科目,我只用了2个做实验;

示例:生物学: 多少分? 2个 8个 10(应该是 (8+10)/2) 法语: 多少分? 3个 7 9 10(应该是 (7+9+10)/3

输出应该是 9+9/2 = 9

但我的代码没有这样做,也不知道为什么

您需要在 i 循环中添加 sumaNote = 0;

关于编译:

  1. header 不再使用,主函数末尾的 getch() 也不再使用。
  2. 使用像 CodeBlocks IDE、Repl 在线编译器这样的现代编译器来避免使用过时的代码。

节目:

  1. 添加了 len 自动计算数组长度的变量。
  2. 在进入下一个主题之前,循环结束时总和重置为 0。
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    string subject[] = {"Biology", "French"}; //"Sport", "Ed.Antreprenoriala", "Geografie", "Mate", "TIC", "Psihologie", "Romana", "Chimie", "Fizica", "Istorie", "Engleza", "Religie", "Info", "Desen", "Muzica"};
    int mark, numberOfMarks;
    float sumaNote = 0;
    double average, averageSum = 0, finalAverage;

    // Find length of array 
    int len = sizeof(subject)/sizeof(subject[0]);

    // changed limit to len
    for(int i=0; i<len; i++) {

        cout << subject[i] << ":" << "\n";
        cout << "How many marks?" << "\n";
        cin >> numberOfMarks;

        for(int j=0; j < numberOfMarks; j++){
            cin >> mark;
            sumaNote += mark;
        }

        average = sumaNote / numberOfMarks;
        averageSum += round(average);

        sumaNote = 0; // important to reset sum
    }

    cout << endl;

    finalAverage = averageSum/len;

    cout << finalAverage;

    return 0;
}