我不知道如何用变量写平均成绩

I don't know how to write the average grade with variables

本文关键字:何用 变量 我不知道      更新时间:2023-10-16

我正在尝试自动设置给定变量的数字,例如:

char subject1[30];
char subject2[30];
char subject3[30];
float grade1;
float grade2;
float grade3;
cout << "Type in your first subject: "  ;
cin >> subject1;
cout << "Type in your second subject: ";
cin >> subject2;
cout << "Type in your third subject: ";
cin >> subject3;
cout << "Type in your grade for: " << subject1 << " :";
cin >> grade1;
cout << "Type in your grade for: " << subject2 << " :";
cin >> grade2;
cout << "Type in your grade for: " << subject3 << " :";
cin >> grade3;

float sum = grade1 + grade2 + grade3;
float average = (sum / 3);

cout << "AVERAGE GRADE";
cout << "************************************" << endl;
cout << subject1 << grade1 << endl;
cout << subject2 << grade2 << endl;
cout << subject3 << grade3 << endl;
cout << "====================================" << endl;
cout << "Average: " << average << endl;
return 0;

计算其工作的代码,但我想知道如何将用户输入的三个等级放置。因此,每次添加另一个主题时,我都不必去编辑计算部分。我不确定我的意思是否很好,但我希望您能理解。

一个简单的解决方案是将所有内容存储在vector中(大部分时间比您使用的char array优先),然后只需循环您拥有的主题。

#include <vector>   // need to inlcude this to be able to use vector
#include <iostream>
const int numSubjects = 3;
std::vector<std::string> prefix{"first", "second", "third"};
std::vector<std::string> subjects(numSubjects);
std::vector<float> grades(numSubjects);
for(int i = 0; i < numSubjects; i++) {
    std::cout << "Type in your " << prefix[i] << " subject: ";
    std::cin >> subjects[i];
    std::cout << "Type in your grade for " << subjects[i] << ": ";
    std::cin >> grades[i];
}
//afterwards do the calculations

请注意,我以numSubjects的大小初始化了向量,您可以使用[]操作员访问并写入向量的索引。如果您不使用大小初始化vector,则可以使用push_back()插入元素。