【发布时间】:2022-01-04 20:10:05
【问题描述】:
问题:
-
为什么第一个“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;
}
【问题讨论】:
-
std::cin >> score[4];会将值写入数组的第五个元素,这似乎没有帮助。你的第二个问题没有多大意义,似乎是基于一些奇怪的误解 -
无法将
cin >>用于整个数组,只能用于单个元素。您似乎认为cin >> score[whatever];输入了整个数组,并且它的大小在方括号中表示。不是这种情况。它输入单个元素,即由方括号中的索引指示的元素。 -
将
std::cin排除在循环之外是没有意义的。作者可能想确保设置了max,以便可以将其与其余值进行比较,但如果for 循环从0 开始并且可以删除std::cin >> score[0],则将设置max。试试这个int max = -1; for(int i = 0; i < 5; i++){std::cin >> score[i];max = score[i] > max ? score[i] : max;}。max = score[i] > max ? score[i] : max;}是一个内联 if else 以防万一你不知道。