int rVals[];
string rNum;
for (i=0; i < rNum.length(); ++i) {
if((rVals[i] < rVals[i+1]) && (rNum[i] =='C' || rNum[i]=='X' || rNum[i]=='I')){
continue; //checks to see if preceeding value is < the next value
} else {
valid = false;
cout << "you can't subtract by M, D, L, or V\n" << endl;
break;
}
}
rVals []是动态数组并且设置正确。无论输入是什么,if语句似乎评估为false。 if语句有什么问题?
答案 0 :(得分:1)
看看这个:rVals[i] < rVals[i+1]
。如果rVals
长度为10,而i
为9 rVals[i+1]
,则&#34;指向&#34;到数组的第11个元素(因为数组的索引从0开始,在0到9之间,你会产生10个元素 - 我们数组的大小)。