逻辑还是语法错误?C++

logic or syntax error? C++

本文关键字:错误 C++ 语法      更新时间:2023-10-16
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 Vn" << endl;
        break;
    }
}

rVals[] 是一个动态数组,设置正确。无论输入是什么,if 语句的计算结果似乎都为 false。如果语句有什么问题?

看看这个: rVals[i] < rVals[i+1] .例如,如果rVals长度为 10,i为 9,rVals[i+1]将"指向"数组的第 11 个元素(因为数组的索引从 0 开始,在 0 到 9 之间,您增加了 10 个元素 - 我们数组的大小)。