重复一组输入,存储和跟踪每个输入。 C ++

时间:2014-01-08 00:04:11

标签: c++ loops while-loop store repeat

我希望创建一个程序,询问用户5个不同的问题。每次回答5个问题,程序将询问用户是否希望输入一组新的答案。

我将使用什么功能重新运行问题,以及存储和跟踪问题的功能?

string Q1[10];
string Q2[10];
int Q3[10];
int Q4[10];
char newEntry;


    do{

    for(int i=0; i<11; i++){
        cout << "Question 1: " << endl;
        cin >> Q1[i];
        }

    for(int i=0; i<11; i++){
        cout << endl << endl << "Question 2: " << endl;
        cin >> Q2[i];
        }

    for(int i=0; i<11; i++){
        cout << endl << endl << "Question 3: " << endl;
        cin >> Q3[i];
        }

    for(int i=0; i<11; i++){
        cout << endl << endl << "Question 4: " << endl;
        cin >> Q4[i];
        }

        cout << "Would you like to repeat? Enter either 'y' or 'n': " << endl;
        cin >> newEntry;

    }while (newEntry=='y');






    system("pause");
    return 0;
}

2 个答案:

答案 0 :(得分:0)

for循环移出所有问题。

    for(int i=0; i<10; i++){
        cout << "Question 1: " << endl;
        cin >> Q1[i];

        cout << endl << endl << "Question 2: " << endl;
        cin >> Q2[i];

        cout << endl << endl << "Question 3: " << endl;
        cin >> Q3[i];

        cout << endl << endl << "Question 4: " << endl;
        cin >> Q4[i];

        cout << "Would you like to repeat? Enter either 'y' or 'n': " << endl;
        cin >> newEntry;
        if (newEntry != 'y')
            break;
    }

请注意,循环索引可能只有[0,10]而不是[0,11],因为Q1Q2Q3Q4属于10号。

答案 1 :(得分:0)

我建议使用字符串向量来存储你的答案而不是使用数组。 例如,您的程序可能如下所示:

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(int argc, const char * argv[])
{
    vector<string> Q1;
    vector<string> Q2;
    vector<string> Q3;
    vector<string> Q4;
    vector<string> Q5;

    char newEntry = '\0';
    string temp;

    do {
        cout<<"Question 1: "<<endl;
        cin>>temp;
        Q1.push_back(temp);
        temp.clear();

        cout<<"Question 2: "<<endl;
        cin>>temp;
        Q2.push_back(temp);
        temp.clear();

        cout<<"Question 3: "<<endl;
        cin>>temp;
        Q3.push_back(temp);
        temp.clear();

        cout<<"Question 4: "<<endl;
        cin>>temp;
        Q4.push_back(temp);
        temp.clear();

        cout<<"Question 5: "<<endl;
        cin>>temp;
        Q5.push_back(temp);
        temp.clear();

        cout << "Would you like to repeat? Enter either 'y' or 'n': " << endl;
        cin >> newEntry;

    } while (newEntry=='y');
    return 0;
}

我认为这是你要去做的事情。 如果您不熟悉向量,here是一个不错的教程/参考供您查看。 这种方法的优点是向量将根据您的需要存储基本上尽可能多的答案,您可以像访问数组一样访问它。

至于你对while循环的问题,它应该像我上面给你看的那样工作得很好。确保在使用之前初始化用于存储答案的字符,并且您应该没问题。

这为您提供了存储所有答案的方法。我不确定你计划在存储后对答案做什么,但是如果你想将答案与之前的答案进行比较,你需要知道的是你的while循环的迭代是你寻找的答案您正在寻找的问题和问题,您可以找到答案。 例如:

int index = 0;//i want the answer from the fisrt occurance of the loop.
string answer = Q1[index];//i want the answer to Question 1 from loop occurance 1
index=1;//i want the answer from the second occurance of the loop.
string answer2 = Q1[index];//i want the answer to Question 1 from loop occurance 2

if (answer==answer2) {
    cout<<"Answers were the same";
}
else cout<<"Answers were not the same";

我希望我能帮助并祝你好运!