向在线评审平台提交问题。代码与提供的示例完美匹配,但判断输出“运行时错误”,仅此而已。
代码应该从输入计算结果分数
示例输入:
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;
}
答案 0 :(得分:2)
我的通灵调试技巧告诉我,他们给你的输入有超过499行,导致你的程序在其硬编码数组的末尾运行。
在处理之前,您是否考虑过std::vector
或未将所有输入缓存的方法?