2017-07-27 158 views
2

我正在尝试制作一个程序,要求提供一个班级大小来定义程序要求测试分数的次数。
一旦得到它,它会使用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; 
} 

回答

2

您可以只使用一个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)没有被选中。

+0

'如果(我!= 0){' - >'如果(i){',拜托,有顶部糖? – Bathsheba

+0

修改并感谢@Bathsheba。 ;) – ruhul

5

就在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类型。)

0

有可能利用编写更加紧凑的代码读取值的范围,用于:

size_t sz; 
std::cin >> sz; 
std::vector<double> input(sz); 
for(auto& el : input) 
    std::cin >> el;