例8.25有a個學生,每個學生有b門課程的成績。要求在使用者輸入學生序號以後,能輸出該學生的全部成績。用指標函式實現。
阿新 • • 發佈:2019-02-09
#include <stdio.h> int main() {float score[ ][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}; //定義陣列,存放成績 float *search(float (*pointer)[4]); // 函式宣告 float *p; int i,j; for(i=0;i<3;i++) {p=search(score+i); //呼叫search函式,如有不及格返回score[i][0]的地址,否則返回NULL, if(p==*(score+i)) //如果返回的是score[i][0]的地址 {printf("No.%d score:",i); for(j=0;j<4;j++) printf("%5.2f ",*(p+j)); // 輸出score[i][0]到score[i][3]的值 printf("\n"); } } return 0; } float *search(float (*pointer)[4]) // 定義函式,形參pointer是指向一維陣列的指標變數 {int i=0; float *pt; pt=NULL; // 先使pt的值為NULL for(;i<4;i++) if(*(*pointer+i)<60) pt=*pointer; // 如果有不及格課程,使pt指向score[i][0] return(pt); }