向在线评判平台提交问题。代码与提供的示例完美配合,但判断输出“运行时错误”,仅此而已。
代码应该根据输入计算结果分数
示例输入:
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;
}
最佳答案
我的通灵调试技巧告诉我,他们给你的输入超过 499 行,导致你的程序运行超出其硬编码数组的末尾。
您是否考虑过 std::vector
或在处理之前不缓存所有输入的方法?
关于c++ - 如何修复不影响性能的 "runtime error"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903570/