#16950: 請問 為什麼執行結果 會錯誤 如何改正呢


asddzxcc1856 (嚕踢)

學校 : 國立中興大學
編號 : 86097
來源 : [61.223.99.184]
最後登入時間 :
2023-08-21 21:25:52
a158. 11827 - Maximum GCD -- UVa11827 | From: [61.223.96.13] | 發表日期 : 2019-02-24 15:22

#include <iostream>
#include <sstream>
using namespace std;

int gcd(int a,int b)
{
if (b==0)
return a;
else
return gcd(b,a%b);
}

int main ()
{
int q;
while (cin>>q )
{
for (int i=0;i<q;i++)
{
string s;
getline(cin,s);
stringstream ss(s);
int e,w,k=0,a,f[105]={},num=0,max=0;
while (ss >> a)
{
f[k]=a;
k++;
}
for (e=0;e<k;e++)
{
for (w=0;w<k;w++)
{
if (f[w]!=f[e])
{
num=gcd(f[e],f[w]);
if (max<num)
{
max=num;
}
}
}
}
if (max!=0)
cout << max << endl;
ss.clear();
ss.str("");
}
}
}

 
#16952: Re:請問 為什麼執行結果 會錯誤 如何改正呢


asddzxcc1856 (嚕踢)

學校 : 國立中興大學
編號 : 86097
來源 : [61.223.99.184]
最後登入時間 :
2023-08-21 21:25:52
a158. 11827 - Maximum GCD -- UVa11827 | From: [61.223.96.13] | 發表日期 : 2019-02-24 15:36

 

為什麼他在讀取測資的時候 會沒讀到 某一個數字




 
#16954: Re:請問 為什麼執行結果 會錯誤 如何改正呢


wongsunny4@gmail.com (sunny wong)

學校 : 澳門濠江中學
編號 : 74879
來源 : [205.198.48.228]
最後登入時間 :
2020-04-16 14:19:26
a158. 11827 - Maximum GCD -- UVa11827 | From: [149.102.105.247] | 發表日期 : 2019-02-24 16:05

 

為什麼他在讀取測資的時候 會沒讀到 某一個數字






應該在輸入整數後再多讀入一次string.根據我的經驗...

 
#16955: Re:請問 為什麼執行結果 會錯誤 如何改正呢


wongsunny4@gmail.com (sunny wong)

學校 : 澳門濠江中學
編號 : 74879
來源 : [205.198.48.228]
最後登入時間 :
2020-04-16 14:19:26
a158. 11827 - Maximum GCD -- UVa11827 | From: [149.102.105.247] | 發表日期 : 2019-02-24 16:07

 

為什麼他在讀取測資的時候 會沒讀到 某一個數字






應該在輸入整數後再多讀入一次string.根據我的經驗...



...呃... 我回錯帖了 不過我講的有可能是對的,你可以先試試

 
#16956: Re:請問 為什麼執行結果 會錯誤 如何改正呢


asddzxcc1856 (嚕踢)

學校 : 國立中興大學
編號 : 86097
來源 : [61.223.99.184]
最後登入時間 :
2023-08-21 21:25:52
a158. 11827 - Maximum GCD -- UVa11827 | From: [61.223.96.13] | 發表日期 : 2019-02-24 16:20

 

為什麼他在讀取測資的時候 會沒讀到 某一個數字






應該在輸入整數後再多讀入一次string.根據我的經驗...



...呃... 我回錯帖了 不過我講的有可能是對的,你可以先試試



while (ss >> a)
{
f[k]=a;
k++;
}

他是這邊會沒讀到測資 

 
#16957: Re:請問 為什麼執行結果 會錯誤 如何改正呢


asddzxcc1856 (嚕踢)

學校 : 國立中興大學
編號 : 86097
來源 : [61.223.99.184]
最後登入時間 :
2023-08-21 21:25:52
a158. 11827 - Maximum GCD -- UVa11827 | From: [61.223.96.13] | 發表日期 : 2019-02-24 16:25

 

為什麼他在讀取測資的時候 會沒讀到 某一個數字






應該在輸入整數後再多讀入一次string.根據我的經驗...



...呃... 我回錯帖了 不過我講的有可能是對的,你可以先試試



while (ss >> a)
{
f[k]=a;
k++;
}

他是這邊會沒讀到測資 

修正 是getline(cin,s) 這裡沒讀到




 
#16959: Re:請問 為什麼執行結果 會錯誤 如何改正呢


asddzxcc1856 (嚕踢)

學校 : 國立中興大學
編號 : 86097
來源 : [61.223.99.184]
最後登入時間 :
2023-08-21 21:25:52
a158. 11827 - Maximum GCD -- UVa11827 | From: [61.223.96.13] | 發表日期 : 2019-02-24 16:36

 

剛剛的程式碼改編的 他提供的測資可以用 但是 上傳答案有誤 WA line3

 
#20655: Re:請問 為什麼執行結果 會錯誤 如何改正呢


happyman940815@gmail.com (【百鬼組】希格瑪 - 一位排球廢物高中生)

學校 : 臺北市私立延平高級中學
編號 : 69013
來源 : [115.43.155.126]
最後登入時間 :
2023-08-11 16:12:40
a158. 11827 - Maximum GCD -- UVa11827 | From: [219.71.219.174] | 發表日期 : 2020-02-16 20:46

 

cin>>input;

getline(cin,input2);

若要正常執行getline(cin,input2)

要打成這樣

cin>>input;

cin.ignore();

getline(cin,input2);

 

別問我為什麼

去問其他大大...

因為我不太確定我的解釋是不是正確的

 

cin>>input;後,input裡面不會存取到你按下的"enter"

所以getline會讀到"enter"才導致你少讀一個

 

 
ZeroJudge Forum