#29145: 我有個疑問


zoosewu (lion)


#include<iostream>

#include<stdio.h>

using namespace std;

int main(){

int n,i,x;

  • double a,total; 我原本把 total寫在 int 的宣告中會WA,但是移到double 就AC了,請問是成績測資有非整數還是其他原因?

while(cin>>n){

total=0;

for(i=0;i<n;i++){

cin>>x;

total+=x;

}

a=total/n;

if(a>59)

cout<<"no";

else

cout<<"yes";

cout<<endl;

}

}

#29146: Re:我有個疑問


cges30901 (cges30901)



a=total/n;


因為如果total和n都是int,就會進行整數除法,結果會是整數,然後再轉換成a的型態double,所以才會WA。

如果是我的話,我會盡量避免浮點,會想要寫成if(total>59*n)這種方式。

#29147: Re:我有個疑問


cges30901 (cges30901)



a=total/n;


因為如果total和n都是int,就會進行整數除法,結果會是整數,然後再轉換成a的型態double,所以才會WA。

如果是我的話,我會盡量避免浮點,會想要寫成if(total>59*n)這種方式。


如果要除的話,可以先將其中一個值轉成double,例如:

a=(double)total/n