C++ 如何解决“问题”;运行时错误“;这并不意味着';不影响性能?

C++ 如何解决“问题”;运行时错误“;这并不意味着';不影响性能?,c++,runtime,runtime-error,C++,Runtime,Runtime Error,向在线评判平台提交了一个问题。代码和提供的示例完美配合,但judge输出“运行时错误”,仅此而已 代码应该根据输入计算结果分数 样本输入: 27 12 2460000 98400 34000 包含0的行将跟随最后一个输入。第一个数字是分子,第二个是分母 当前代码: #include <iostream> using namespace std; int main(){ int num[500], den[500], ent[500]; for (int i = 0

向在线评判平台提交了一个问题。代码和提供的示例完美配合,但judge输出“运行时错误”,仅此而已

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

样本输入:

27 12

2460000 98400

34000

包含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;
}
#包括
使用名称空间std;
int main(){
int num[500],den[500],ent[500];
对于(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++;
}我--;

对于(int j=1;j我的心理调试技能告诉我,他们给你的输入超过499行,导致你的程序运行到硬编码数组的末尾


你有没有考虑过
std::vector
或者在处理之前不缓存所有输入的方法?

你知道你的最大分数是500分吗?如果超过500分,那肯定会有问题,因为你的数组大小是500。另外,我会将你的读取循环更改为
Do{cin>>num[i] >>den[i];i++;}while((num[i]!=0)&(den[i]!=0);
顺便说一句,“不影响性能的运行时错误”这个表达式听起来很奇怪。它听起来像“是的,我的程序崩溃了——但看看它有多快!”。是否需要存储分数?例如,您可以读取一个分数输入,然后处理,然后输出吗?这样就不需要存储分数。您的
ent
num
值可以动态计算和打印。