#9916: 編譯對 送出去錯?!


wiwi880114 (看似無盡的人生)

學校 : 國立武陵高級中學
編號 : 50212
來源 : [36.237.108.206]
最後登入時間 :
2021-10-16 13:40:17
a005. Eva 的回家作業 -- POJ | From: [110.26.72.120] | 發表日期 : 2015-06-14 09:31

#include<iostream>
#include<math.h>
using namespace std;

int main(){

int a , b, c ,d;
while(cin>>a){

cin>>b;
cin>>c;
cin>>d;
   if(pow(b,2)==a*c){
     int s=b/a;
      cout<<a <<" "<<b <<" "<<c<<" " <<d<<" " <<d*s<< "\n";

}else{
            int t=b-a;
            cout<<a<<" "<< b<<" " <<c <<" "<<d <<" "<<d+t<< "\n";             }

}
return 0;

}
 
#9917: Re:編譯對 送出去錯?!


p3a_owhj (阿普二信)

學校 : 不指定學校
編號 : 39897
來源 : [36.227.79.178]
最後登入時間 :
2024-06-04 22:09:36
a005. Eva 的回家作業 -- POJ | From: [49.159.134.149] | 發表日期 : 2015-06-14 16:29

(1) 
   if(pow(b,2)==a*c){  建議型別轉換成正確的,或直接 b*b如下
  if ( b*b == a*c ) {
 
(2) 又題目規定有 t 筆資料,而不是讀到 EOF



 
#10060: Re:編譯對 送出去錯?!


TYHot31 (sagar)

學校 : 元智大學
編號 : 50120
來源 : [180.217.187.62]
最後登入時間 :
2016-09-25 15:53:06
a005. Eva 的回家作業 -- POJ | From: [111.249.44.136] | 發表日期 : 2015-07-19 22:00

#include
#include
using namespace std;

int main(){

int a , b, c ,d;
while(cin>>a){

cin>>b;
cin>>c;
cin>>d;
   if(pow(b,2)==a*c){
     int s=b/a;
      cout<

}else{
            int t=b-a;
            cout<

}
return 0;

}
最明顯少掉的是說明中的   "第一行是數列的數目t(0 <= t <= 20)"而測驗執行預設為2,也就是兩個數列,兩次,所以當輸入時,會先輸入"2"後面才是真正的數列開數,導致輸出總是先出現個"2"然後才是數列
 
 
int main()
{
          int a,b,c,d,x;
//x代表輸入次數 
   while(x--)
{.......}
 
  } 
說明:上面的while(x--)意思是類似布林判斷,只要x的值不為0,就會一直循環 ,可以試著把while(X--)改成while(1),就會進入無限循環,改成while(0)就會直接跳出
 
 
 
還有cin>>b>>c>>d可以試著用陣列和for(比較乾淨俐落)
前面先定義陣列
int arr[4];
後面
for(int i=0;i<4;i++)
cout<<arr[i] ;
 
這樣改改看 
 
 
ZeroJudge Forum