#24343: 一直RE(記憶體區段錯誤)不知道哪裡錯了...


d10932027@gapps.fg.tp.edu.tw (雯貓)

學校 : 臺北市立第一女子高級中學
編號 : 132566
來源 : [140.122.184.249]
最後登入時間 :
2022-03-22 15:29:44
c084. 00275 - Expanding Fractions -- UVa275 | From: [122.116.35.159] | 發表日期 : 2021-02-07 22:46

測試的時候都沒有問題,送出答案後卻一直RE(記憶體區段錯誤),找不到原因...我陣列大小應該設置的很足夠的說...

以下是我的程式碼

#include <iostream>
using namespace std;

int main()
{
long long a,b,dig,countdig,times,counter;
int ans[10000] = {};
while(cin >> a >> b)
{
if(a == 0 && b == 0)
{
break;
}
dig = a;
if(dig>10)
{
while(dig<b)
{
dig = dig*10;
}
dig = dig%b;
}
countdig = 1;
counter = 0;
times = 0;
if(a == dig)
{
times+=1;
counter+=1;
}
while(times!=2 && a!= 0)
{
a = a*10;
ans[countdig] = a/b;
a = a%b;
countdig +=1;
if(a == dig)
{
times += 1;
}
if(times == 1)
{
counter+=1;
}
}
cout << ".";
for(int i=1;i<countdig;i++)
{
cout << ans[i];
ans[i] = 0;
if((i+1)%50 == 0)
{
cout << endl;
}
}
cout << endl;
if(a == 0)
{
cout << "This expansion terminates." << endl;
}
else
{
cout << "The last " << counter << " digits repeat forever." << endl;
}
}
return 0;
}
 
希望有大神能指出我的錯誤,謝謝~
 
ZeroJudge Forum