如何修复不影响性能的“运行时错误”?

时间:2015-03-06 16:48:16

标签: c++ runtime runtime-error

向在线评审平台提交问题。代码与提供的示例完美匹配,但判断输出“运行时错误”,仅此而已。

代码应该从输入计算结果分数

示例输入:

27 12

2460000 98400

3 4000

包含0 0的行将跟随最后一个输入。第一个数字是分子,第二个是分母。

当前代码:

#include <iostream>
using namespace std;

int main(){

    int num[500], den[500], ent[500];
    for (int i = 0; i < 500; i++) {
        num[i] = 0;
        den[i] = 0;
        ent[i] = 0;
    }
    int i=1;
    num[0]=1; den[0]=1;
    while((num[i-1]!=0)&&(den[i-1]!=0)){
        cin >> num[i] >> den[i];
        i++;
    } i--;

    for(int j=1; j<i; j++){
        ent[j]=num[j]/den[j];
        num[j]=num[j]%den[j];
    }

    for(int j=1; j<i; j++){
        cout << ent[j] << " " << num[j] << " / " << den[j] << endl;
    }
    return 0;
}

1 个答案:

答案 0 :(得分:2)

我的通灵调试技巧告诉我,他们给你的输入有超过499行,导致你的程序在其硬编码数组的末尾运行。

在处理之前,您是否考虑过std::vector或未将所有输入缓存的方法?