【发布时间】:2015-02-19 00:24:40
【问题描述】:
我已经和这个斗争了一段时间。我正在尝试从 2 个向量创建分数结果,1 个向量是实际答案,另一个是输入的答案。 本质上比较:
for (i=1;i<=totalQ;i++){
cout<<"Enter question answer: ";
cin>>inputQ;
questions.push_back(inputQ);
}
到这里:
for (i=1;i<=totalQ;i++){
cout<<"Enter your answer: ";
cin>>studentA;
answers.push_back(studentA);
}
我无法弄清楚如何将元素相互比较以返回有多少相同(正确答案)。
最初我尝试不使用第二个向量,并通过这样做将来自第二个输入的字符串与问题向量进行比较:
for (i=1;i<=totalQ;i++){
cout<<"Enter your answer: ";
cin>>studentA;
if(studentA == questions[i]){
score=score+1}
}
但是比较语句一直导致程序崩溃。经过一番研究后,我得出的结论是,我无法使用 [] 来比较向量,因此我决定创建一个向量来比较 2... 这还没有成功。
我如何比较这 2 个向量以提供匹配元素和索引的数量,或者我如何将输入与向量元素进行比较。
两个向量都是字符串向量,studentA 是字符串变量。
【问题讨论】:
-
您的原始代码可能崩溃了,因为您一直使用基于 1 的索引,而
questions[i],当i == totalQ索引超出vector的范围时。我不明白您在问什么...您有 N 个问题和 N 个答案,并且想将每个答案与一个问题相匹配?
标签: c++ vector string-comparison