[英]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.