逻辑或语法错误? C ++

时间:2013-12-20 10:21:15

标签: c++

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语句有什么问题?

1 个答案:

答案 0 :(得分:1)

看看这个:rVals[i] < rVals[i+1]。如果rVals长度为10,而i为9 rVals[i+1],则&#34;指向&#34;到数组的第11个元素(因为数组的索引从0开始,在0到9之间,你会产生10个元素 - 我们数组的大小)。