#2166: C++(OLE)怎麼了


zakutwo124 (刷子抵敵)

學校 : 國立高雄師範大學附屬高級中學
編號 : 2527
來源 : [163.32.92.90]
最後登入時間 :
2009-11-18 16:03:11
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [220.129.150.122] | 發表日期 : 2009-07-17 13:38

#include<iostream>      
using namespace std;      
 int main(){      
     int a,i;
     for(i=1;i<=a;i++){
     while(cin>>a){
                   if(a%4==0&&a%100!=0||a%400==0){
                           cout<<"a leap year"<<endl;                        
                        }else if(a==0){
                        break;
                        }else
                         cout<<"a normal year"<<endl;   
                   }
            
            
             }
     system("pause");      
     return 0;      
 }   
      這是我的程式碼

輸進去卻OLE   不知道是為何

 

 
#2173: Re:C++(OLE)怎麼了


david942j (文旋)

學校 : 臺北市立成功高級中學
編號 : 6086
來源 : [115.43.75.16]
最後登入時間 :
2017-02-18 13:17:39
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [58.115.138.158] | 發表日期 : 2009-07-18 16:20

#include      
using namespace std;      
 int main(){      
     int a,i;
     for(i=1;i<=a;i++){
     while(cin>>a){
                   if(a%4==0&&a%100!=0||a%400==0){
                           cout<<"a leap year"<                        }else if(a==0){
                        break;
                        }else
                         cout<<"a normal year"<                   }
            
            
             }
     system("pause");      
     return 0;      
 }   
      這是我的程式碼

輸進去卻OLE   不知道是為何

 


把a==0的判斷放到前面

..............................

if(a==0){
                        break;
                        }

else if(a%4==0&&a%100!=0||a%400==0){
                           cout<<"a leap year"<                        }

................................

像你原來那樣打當a=0時會因為a%400==0就正確而輸出"a leap year"

另外ststem("pause");也刪掉

 
#2177: Re:C++(OLE)怎麼了


zakutwo124 (刷子抵敵)

學校 : 國立高雄師範大學附屬高級中學
編號 : 2527
來源 : [163.32.92.90]
最後登入時間 :
2009-11-18 16:03:11
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [220.129.153.202] | 發表日期 : 2009-07-18 19:21

#include      
using namespace std;      
 int main(){      
     int a,i;
     for(i=1;i<=a;i++){
     while(cin>>a){
                   if(a%4==0&&a%100!=0||a%400==0){
                           cout<<"a leap year"<                        }else if(a==0){
                        break;
                        }else
                         cout<<"a normal year"<                   }
            
            
             }
     system("pause");      
     return 0;      
 }   
      這是我的程式碼

輸進去卻OLE   不知道是為何

 


把a==0的判斷放到前面

..............................

if(a==0){
                        break;
                        }

else if(a%4==0&&a%100!=0||a%400==0){
                           cout<<"a leap year"<                        }

................................

像你原來那樣打當a=0時會因為a%400==0就正確而輸出"a leap year"

另外ststem("pause");也刪掉


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

謝謝這位好心的大大,

原來是我沒搞清楚處理順序,謝謝指點

 
ZeroJudge Forum