#21913: 疑惑超級疑惑


shanchiapei@gmail.com (若遙)

學校 : 國立中央大學
編號 : 67758
來源 : [1.200.215.152]
最後登入時間 :
2020-09-03 22:20:17
a148. You Cannot Pass?! | From: [140.115.50.44] | 發表日期 : 2020-07-30 10:55

 

為何把b,c宣告在while 裡面他就會過,如下

int main()

{

  int a;

  while(cin>>a)

  {

    int b,c=0;

    for(int i=0;i<a;i++){

      cin>>b;

      c = c + b;

    }

    if(c<=(59*a)){

      cout<<"yes"<<endl;

    }else{

      cout<<"no"<<endl;

    }

  }

}

 

但是放在外面就不會過

 

int main()

{

  int a, b, c=0;

  while(cin>>a)

  {

    for(int i=0;i<a;i++){

      cin>>b;

      c = c + b;

    }

    if(c<=(59*a)){

      cout<<"yes"<<endl;

    }else{

      cout<<"no"<<endl;

    }

  }

 

}

 
#21920: Re:疑惑超級疑惑


easylin0126@gmail.com (林榮翼)

學校 : 臺北市立成功高級中學
編號 : 89424
來源 : [140.114.207.162]
最後登入時間 :
2023-09-27 16:33:24
a148. You Cannot Pass?! | From: [39.10.190.117] | 發表日期 : 2020-07-30 20:32

 

為何把b,c宣告在while 裡面他就會過,如下

int main()

{

  int a;

  while(cin>>a)

  {

    int b,c=0;

    for(int i=0;i<a;i++){

      cin>>b;

      c = c + b;

    }

    if(c<=(59*a)){

      cout<<"yes"<<endl;

    }else{

      cout<<"no"<<endl;

    }

  }

}

 

但是放在外面就不會過

 

int main()

{

  int a, b, c=0;

  while(cin>>a)

  {

    for(int i=0;i<a;i++){

      cin>>b;

      c = c + b;

    }

    if(c<=(59*a)){

      cout<<"yes"<<endl;

    }else{

      cout<<"no"<<endl;

    }

  }

 

}

底下的c會因為重複輸入的關係累加到之前的資訊,解決辦法就是像上面一樣重新宣告或是你每次要處理前都把c設成0

 
ZeroJudge Forum