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
循环中使用任何数组来实现段错误。
答案 0 :(得分:1)
你没有提到什么样的运行时错误,所以这是猜想......
使用np - 1
,您的代码与输入不匹配;流中还剩下一个非整数。
这意味着cin >> total >> ppl
失败,ppl
变为零,total / ppl
除以零。