[英]Using arrays with for-loops
問題:
為什么第一個“cin >>”保存了“score [0]”? 由於程序要求輸入 5 個數字,將輸入的數字保存到 5 的數組(“score[4]”)中是否有意義?
我也不明白第二個“cin >> score[i]”的語法。 當有數據輸入時,我認為“cin>>”與“cout<<”相結合。
//Enter five scores. Show how much each differs from the highest score.
#include <iostream>
using namespace std;
int main()
{
int i, score[5], max;
cout<<"Enter 5 scores:\n";
cin >> score[0];
max = score[0];
for (i = 1; i < 5; i++)
{
cin >> score[i];
if (score[i] > max)
max = score[i];
}
cout <<"Highest score: " <<max<<endl
<<"The scores and their\n"
<<"diff. from highest are:\n";
for (i = 0; i < 5; i++)
cout << score[i] << " off by "
<< (max - score[i]) << endl;
return 0;
}
cin 是stdin
。 這是一個 UNIX 的東西。 基本上它是你程序的輸入。 如果您不做任何其他事情,那就是您的控制台或終端 session。
cout 是stdout
,另一個 UNIX 東西。 它是 output。 同樣,如果您不使用它做任何其他事情,您的控制台或終端 session。 它們並不是真正的耦合。 這是兩件不同的事情,一件僅用於輸入,一件僅用於 output。
現在,讓我們看看您的代碼:
cin >> score[0];
max = score[0];
for (i = 1; i < 5; i++)
{
cin >> score[i];
if (score[i] > max)
max = score[i];
}
這可以簡化。 您可以擺脫前兩行並將其更改為:
for (i = 0; i < 5; i++)
{
cin >> score[i];
if (score[i] > max)
max = score[i];
}
您只需要將 max 初始化為一個真正的負值。
cin >>
在這里所做的是讀取一個 SINGLE 值 - 一個分數 - 然后將其填充到score
的單個成員中。 所以你不能做這樣的事情:
cin >> score;
那是行不通的。 好吧,您也許可以使其與運算符重載一起使用,但這是一個高級主題,我從未嘗試過。 (坦率地說,我從不使用>>
運算符,而是尋找其他方式來獲取輸入。)
還有一點: score[4]
指的不是一個大小為 5 的數組,而是數組中的第 5 項,就像score[0]
指的是第一項一樣。 它僅指初始定義中的大小:
int score[5];
那是唯一一次[5]
大約是大小。 否則它是數組的索引,從 0 開始。所以你有score[0]
... score[4]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.