嵌套for循环C ++中的运行时错误

时间:2015-11-06 17:26:14

标签: c++ for-loop error-handling runtime-error

 for(i=0;i<np;i++){
    cin >> temp_str;
    pos = find(names.begin(), names.end(), temp_str) - names.begin();
    cin >> total >> ppl;
    giving.push_back(make_pair(pos, total));
    amt_getting = total / ppl;
    bal[pos] += total - (amt_getting * ppl);

    for(j = 0; j < np - 1; j++){   /**** Error due to this loop's condition******/
       cin >> temp_str;
       pos = find(names.begin(), names.end(), temp_str) - names.begin();
       bal[pos] += amt_getting;
    }

我的程序中出现运行时错误。这是发生RTE的代码片段。每当我将条件j < np-1更改为j < np时,错误都会得到修复。怎么回事?我甚至没有在第二个for循环中使用任何数组来实现段错误。

1 个答案:

答案 0 :(得分:1)

你没有提到什么样的运行时错误,所以这是猜想......

使用np - 1,您的代码与输入不匹配;流中还剩下一个非整数。

这意味着cin >> total >> ppl失败,ppl变为零,total / ppl除以零。