2012年1月8日 星期日

acm 10370

 [心得]  0.016
1, answer[answer_count]=(double)100/num*counter;
    一開始寫成answer[answer_count]=(double)(100/num)*counter,小數點後都是0,要注意
2.num 一開始為了方便宣告成double,結果連續scanf()一直有問題,要宣告成int
3. printf("%.3lf%%\n", answer[i]); 注意印出百分比 %% 要寫兩個

#include <stdio.h>
int main()
{
  int i,data,counter,answer_count=0;
  int score[3000],sum,num;
  double answer[3000];
  double average;
  scanf("%d",&data);
  while(data)
  { 
     sum=0; counter=0;
     scanf("%d",&num);

     for(i=0;i<num;i++)
     {  
        scanf("%d",&score[i]);
        sum=sum+score[i];
     }    
     average = sum/num;
     for(i=0;i<num;i++)
     {
        if(score[i]>average)
        counter++;
     }
     answer[answer_count]=(double)100/num*counter;
     answer_count++;
     data--;   
    
  } 
    for(i=0;i<answer_count;i++)
    {
       printf("%.3lf%%\n", answer[i]);
    }
   
  /*system("pause");*/
  return 0;   
}

沒有留言:

張貼留言