這段代碼是寫的。我想獲得平均他們的分數和學生排名?每個班級有 40 名學生 在學校,您有 2 個流,生物科學流和數學流。
在生物流中,有 3 個班級,每個班級有 40 名學生。
在數學課程中,有 5 個班級,每個班級有 40 名學生。
生物學生學習生物、物理和化學。
數學專業的學生學習綜合數學、物理和化學。
#include <iostream>
using namespace std ;
int main() {
string stream, subject , classes;
string Bio, Math ;
int totalMarks,CombinedMathsMarks, PhysicsMarks, ChemistryMarks,biologyMarks;
string A,B,C,D,E;
cout << "Type your stream: ";
cin >> stream;
cout << "Type your subject: ";
cin >> subject;
cout << "Type your classes: ";
cin >> classes;
if (stream == Math ) {
if(classes == A ){
cout << "Type your CombinedMathsMarks: ";
cin >> CombinedMathsMarks;
cout << "Type your Physics Marks: ";
cin >> PhysicsMarks;
cout << "Type your Chemistry Marks: ";
cin >> ChemistryMarks;
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
cout << totalMarks;
}
if(classes ==B ){
cout << "Type your CombinedMathsMarks: ";
cin >> CombinedMathsMarks;
cout << "Type your Physics Marks: ";
cin >> PhysicsMarks;
cout << "Type your Chemistry Marks: ";
cin >> ChemistryMarks;
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
cout << totalMarks;
}
if(classes ==C ){
cout << "Type your CombinedMathsMarks: ";
cin >> CombinedMathsMarks;
cout << "Type your Physics Marks: ";
cin >> PhysicsMarks;
cout << "Type your Chemistry Marks: ";
cin >> ChemistryMarks;
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
cout << totalMarks;
}
if(classes ==D ){
cout << "Type your CombinedMathsMarks: ";
cin >> CombinedMathsMarks;
cout << "Type your Physics Marks: ";
cin >> PhysicsMarks;
cout << "Type your Chemistry Marks: ";
cin >> ChemistryMarks;
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
cout << totalMarks;
}
if(classes == E ){
cout << "Type your CombinedMathsMarks: ";
cin >> CombinedMathsMarks;
cout << "Type your Physics Marks: ";
cin >> PhysicsMarks;
cout << "Type your Chemistry Marks: ";
cin >> ChemistryMarks;
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
cout << totalMarks;
}
}
if (stream == Bio ) {
if(classes == A ){
cout << "Type your biologyMarks Marks: ";
cin >> biologyMarks;
cout << "Type your Physics Marks: ";
cin >> PhysicsMarks;
cout << "Type your Chemistry Marks: ";
cin >> ChemistryMarks;
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
cout << totalMarks;
}
if(classes ==B ){
cout << "Type your biology Marks : ";
cin >> biologyMarks;
cout << "Type your Physics Marks: ";
cin >> PhysicsMarks;
cout << "Type your Chemistry Marks: ";
cin >> ChemistryMarks;
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
cout << totalMarks;
}
if(classes ==C ){
cout << "Type your biology Marks: ";
cin >> biologyMarks;
cout << "Type your Physics Marks: ";
cin >> PhysicsMarks;
cout << "Type your Chemistry Marks: ";
cin >> ChemistryMarks;
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
cout << totalMarks;
}
}
return 0;
}
uj5u.com熱心網友回復:
您的代碼存在一些小問題。首先,我真的沒有看到重點
cout << "Type your subject: ";
cin >> subject;
然后,你的代碼沒有給出任何結果的真正原因是你在 if 陳述句中使用 == 運算子時做的比較錯誤。事情是 A 是變數字串的名稱,而不是您正在比較的實際字串。因此,您可以在開始時正確分配它。像,string A = "A"同樣地,對于其他案件。否則,您可以直接將 if 陳述句更改為
classes == "A"
stream == "Math"
您可能想要檢查代碼的另一件事是,在 Bio Stream if 塊中,對于您使用的輸出陳述句
totalMarks = CombinedMathsMarks PhysicsMarks ChemistryMarks;
這是用于 Maths Stream 塊的。相反,它應該是
totalMarks = biologyMarks PhysicsMarks ChemistryMarks;
uj5u.com熱心網友回復:
錯誤是您已定義classes為 String 而未""在 if 條件中使用它們。
喜歡
不正確的代碼 -
if (stream == Math )正確的代碼 -
if (stream == "Math" )
同樣A被替換為"A"和所有其他變數。
uj5u.com熱心網友回復:
我在您的代碼和您對問題陳述的理解中發現了一些問題。
例如,您有 2 個名為 Math 和 Bio 的字串變數,但它們沒有值。含義,Math = Null 和 Bio = Null .... 但您正在與變數名稱進行比較(這不是一個值)
所以當用戶輸入一個值時,它會與 Null 或 "" 進行比較,因此比較結果將為 False。
如果你想定義常量,一種方法是說:string Bio = "Bio", string A = "A".... etc
另一種方法是“擺脫所有字串變數”,并像其他答案所建議的那樣將單詞放在引號中。
如果您正在考慮編程標準,最好將常量定義為 #define。當您多次使用相同的值時,這很有用。在您的情況下,您實際上不需要接受用戶的任何內容
此外,非常重要。一般來說,當你要求用戶發送一些東西時,你需要更清楚你在期待什么。所以,當你說“輸入你的流”時,在括號中也給出有效值:
cout << "Type your stream (Bio/Math): ";
這是因為人們傾向于以不同的方式書寫,全部大寫,全部小寫,或者可以用數字 Bio = 0 和 Math = 1 表示。您必須清楚您對用戶的期望,同時嘗試處理關閉的情況
接下來,您無緣無故地要求輸入,只是讓用戶感到困惑。問題陳述是每個班級有 40 名學生。所以只需撰寫 3 個嵌套回圈(對于每個流,每個班級和每個班級的學生)
最后,您所做的只是重復相同的總分代碼。您正在列印“僅 1 人的總分”。你不需要大量的代碼。
你需要做的是:
- 有一個回圈來收集多個學生的值。筆記; 每個數學課 40 分,生物課 40 分。無需實際詢問用戶
- 將每個班級的計數器與每個班級、每個流中的學生人數相加,并將每個班級的總和
- 合并每個學生的總數并比較總數以確定排名。順便說一下,你問題的那部分不清楚。每個學生的排名?每個班級?問題是什么?
- 最后,您需要對每個流的分數求和,然后除以流中的學生人數。
我可以為它編碼,但我不想用勺子喂答案,所以請自己寫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/382464.html
標籤:C
上一篇:洗掉兩列中重復出現的值
