C語言 | 計算總平均分及第n個人的成績

例32:有一個班,3個學生,各學習4門課,C語言程式設計實現計算總平均分數以及第n個學生的成績,要求使用指標。

解題思路:今天這道例題分為3部分,下述求的是第3個學生,讀者請思考怎麼改為求第n個學生。

第一步:求平均分函式:

void average(float *p,int n)//自定義求平均成績函式 {  float *p_end;//定義浮點型別指標變數   float sum=0,aver;//定義浮點型變數   p_end=p+n-1;//把地址賦給指標變數   for(;p<=p_end;p++)//for迴圈,注意第一處分號   {    sum=sum+(*p);//總和   }   aver=sum/n;//平均分   printf(“平均數是:%f”,aver);//輸出平均分   printf(“\n”);//換行 }

第二步:求第n個學生成績函式

void search_Grade(float (*p)[4],int n)//自定義求第n個學生成績函式 {  int i;//定義變數   printf(“第%d個學生的成績是:”,n+1);//輸出,注意此處我寫的是n+1,陣列下標是從0開始的   for(i=0;i<4;i++)//for迴圈   {    printf(“%5。2f ”,*(*(p+n)+i));  }}

原始碼演示:

#include//標頭檔案 int main()//主函式 {  void average(float *p,int n);//函式宣告   void search_Grade(float (*p)[4],int n);//函式宣告   float score[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//定義浮點型陣列   average(*score,12);//平均成績   search_Grade(score,2);//第3個學生的成績,這裡寫2是因為按照陣列從0開始   return 0;//主函式返回值為0 }void average(float *p,int n)//自定義求平均成績函式 {  float *p_end;//定義浮點型別指標變數   float sum=0,aver;//定義浮點型變數   p_end=p+n-1;//把地址賦給指標變數   for(;p<=p_end;p++)//for迴圈,注意第一處分號   {    sum=sum+(*p);//總和   }   aver=sum/n;//平均分   printf(“平均數是:%f”,aver);//輸出平均分   printf(“\n”);//換行 }void search_Grade(float (*p)[4],int n)//自定義求第n個學生成績函式 {  int i;//定義變數   printf(“第%d個學生的成績是:”,n+1);//輸出,注意此處我寫的是n+1,陣列下標是從0開始的   for(i=0;i<4;i++)//for迴圈   {    printf(“%5。2f ”,*(*(p+n)+i));  }}

編譯執行結果如下:

平均數是:6。500000第3個學生的成績是: 9。00 10。00 11。00 12。00————————————————Process exited after 0。07228 seconds with return value 0請按任意鍵繼續。 。 。