簡體   English   中英

我不知道如何用變量寫平均成績

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

我正在嘗試自動設置給定變量的數量,例如:

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;

計算它的代碼有效,但我想知道如何放置用戶輸入的 3 個等級。 所以我每次添加另一個主題時都不必去編輯計算部分。 我不確定我是否解釋清楚我的意思,但我希望你能理解。

一個簡單的解決方案是將所有內容都存儲在一個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()插入元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM