我遇到了這個for-loop,之前沒有遇到過,不知道這是可能的。 Personaly我會設置sum = 0
之間的2 for
循環,而不是它現在。用於在for循環中將值設置爲零的奇怪用法
怎麼可能sum
不被設置爲0,每次student_index
增加,是因爲當它初始化的編譯器只在第二for循環的第一個條件看一次,之後只增加student_index
直到第二個條件滿足?
int main(int argc, char** argv) {
int test_index, student_index, scores[3][5] = {
{92, 73, 57, 98, 89},
{88, 76, 23, 95, 72},
{94, 82, 63, 99, 94}
};
float sum;
for (test_index = 0; test_index < 3; test_index++) {
sum = 0; // This is where i would set `sum = 0`
for (student_index = 0, sum = 0; student_index < 5; student_index++) {
sum = sum + scores[test_index][student_index];
}
cout << "Average score for test nr. " << test_index + 1 << ": "
<< sum/5 << endl;
}
return 0;
}
您的代碼中存在拼寫錯誤'som'與'sum'。請複製並粘貼*確切*代碼。 –
這是糟糕的代碼 - 可能會讓讀者感到困惑,但正如其他人指出的那樣,它是有效的 - 不會混淆編譯器。 –
並明確你在問什麼構造。就目前而言,「sum」在你說你期望它被設置的位置被設置爲零。所以你的困惑是令人困惑的。 –