如何在for循环中记录输入?
问题描述:
我正在尝试制作一个程序,要求提供一个班级大小来定义程序要求测试分数的次数。
一旦得到它,它会使用for循环询问测试分数,直到达到班级规模。
我想要做的是记录每个分数,以便它可以在最后公布,但我不知道如何记录我正在使用的代码中的每个单独的输入。我希望它运行类似:
如何在for循环中记录输入?
分数输入:95
输入分数:25
原始评分:95,25
如果用户输入的2.如何每班人数我要这样做吗?也许与阵列,但我不知道如何encorporate这?
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
int size;
double score;
cout << "Enter class size <1-20> \n";
cin >> size;
for (int i = 0; 0 <= size; i++) {
cout << "Enter Score \n";
cin >> score;
}
return 0;
}
答
您可以只使用一个double
阵列做到这一点。这是代码片段。
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
int size;
double score[20]; // as size must me less than or equal 20
cout << "Enter class size <1-20> \n";
cin >> size;
for (int i = 0; i < size; i++) {
cout << "Enter Score \n";
cin >> score[i];
}
cout<<"Original Scores: ";
// Now iterate through all scores.
for(int i=0;i<size; i++){
if(i){
cout<<",";
}
cout<<score[i]
}
return 0;
}
注意:得分尺寸(20)没有被选中。
答
就在for
循环之前,实例化一个std::vector<double> scores(size);
。这是你将用来记录所有分数。 (编写#include <vector>
以引入此功能。)
然后修复循环中的错别字for (int i = 0; i < size; i++) {
。然后将cin
调整为cin >> scores[i];
。 (不是C++标准库的聪明之处?!不要试图理解背后的机制 - 只要接受符号似乎是合理的)。
然后,您可以迭代通过std::vector
输出的分数。在这个网站上有很多问题向你展示如何做到这一点。
(最终你会使用std::size_t
作为向量索引,而不是int
类型。)
答
有可能利用编写更加紧凑的代码读取值的范围,用于:
size_t sz;
std::cin >> sz;
std::vector<double> input(sz);
for(auto& el : input)
std::cin >> el;
'如果(我!= 0){' - >'如果(i){',拜托,有顶部糖? – Bathsheba
修改并感谢@Bathsheba。 ;) – ruhul