博客來網路書店查詢

書名

博客來網路書店查詢

星期一, 3月 12, 2012

C語言二維陣列計算總分及平均

每一個人有三個成績,這兒共有四個人要計算總分及平均。提供我的方式如下:

#include 
#include 
 main()
 { int i,j,size=4;
   float st[4][5],avg[4];//三科成績、總分、平均
   for (i=0;i<4;i++)
   {
    for(j=0;j<=2;j++)
    {
  printf("第%d位同學的第%d個成績輸入\n",i+1,j+1);
  if(scanf("%f",&st[i][j])!=1)
  {
   fflush(stdin);
      printf("必須是數值資料\n");
      j--;
  }
    }
 st[i][3]=st[i][0]+st[i][1]+st[i][2];
    st[i][4]=st[i][3]/3;
 avg[i]=st[i][4];
   }
  for (i=0;i<4;i++)
   {
    printf("顯示第%d位同學的平均為%4.2f\n",i+1,st[i][4]);
   }
  sortarray2(avg,size);
  printf("依據平均排名後:\n");
  for(i=0;i<4;i++)
  {
    printf("%4.2f\t",avg[i]);
  }
 return 0;
}
void sortarray2(float a[], int size)
{
 int i,j,temp,*ptr;

 for( i = 1 ; i < size ; i++ )
 {
  for( j = 0; j < size-1 ; j++ )
   {
    if( a[j] < a[j+1] )
    {
     temp=*(a+j);
     *(a+j)=*(a+j+1);
     //a[j]=a[j+1];
     *(a+j+1)=temp;
    }
   }
  }
}