C語言指標實現計算平均分等功能
阿新 • • 發佈:2018-11-06
4個學生5門課資料自己輸入,輸出第一門的平均分,並找出有兩門以上課程不及格的學生和平均成績在90分以上的或全部課程成績在85分以上的學生。程式不難,容易理解,但關鍵是思路要清楚。裡面涉及大量的指標的定義使用,多敲點這樣過百行的程式為以後大程式打基礎。程式碼如下:
#include<iostream> using namespace std; int main() { void avsco(float*,float*); void avcour1(char(*)[10],float*); void fail2(char course[5][10],int num[],float *psco,float aver[4]); void good(char course[5][10],int num[4],float*psco,float aver[4]); int i,j,*pnum,num[4]; float score[4][5],aver[4],*pscore,*paver; char course[5][10],(*pcourse)[10]; cout<<"input course:"<<endl; pcourse=course; for(i=0;i<5;i++) cin>>course[i]; cout<<"input NO.and scores:"<<endl; cout<<"NO."; for(i=0;i<5;i++) cout<<","<<course[i]; cout<<endl; pscore=&score[0][0]; pnum=&num[0]; for(i=0;i<4;i++) { cin>>*(pnum+i); for(j=0;j<5;j++) { cin>>*(pscore+5*i+j); } } paver=&aver[0]; cout<<endl<<endl; avsco(pscore,paver); avcour1(pcourse,pscore); cout<<endl<<endl; fail2(pcourse,pnum,pscore,paver); cout<<endl<<endl; good(pcourse,pnum,pscore,paver); return 0; } void avsco(float *pscore,float *paver) { int i,j; float sum,average; for(i=0;i<4;i++) { sum=0.0; for(j=0;j<5;j++) sum+=(*(pscore+5*i+j)); average=sum/5; *(paver+i)=average; } } void avcour1(char(*pcourse)[10],float *pscore) { int i; float sum,average1; sum=0.0; for(i=0;i<4;i++) sum=sum+(*(pscore+5*i)); average1=sum/4; cout<<"course1:"<<*pcourse<<"average score"<<average1<<endl; } void fail2(char course[5][10],int num[],float*pscore,float aver[4]) { int i,j,k,label; cout<<"============student who failed in two couses========="<<endl; cout<<"NO. "; for(i=0;i<5;i++) cout<<course[i]<<" "; cout<<"average"<<endl; for(i=0;i<4;i++) { label=0; for(j=0;j<5;j++) if(*(pscore+5*i+j)<60.0)label++; if(label>=2) { cout<<num[i]<<" "; for(k=0;k<5;k++) cout<<*(pscore+5*i+k)<<" "; cout<<" "<<aver[i]<<endl; } } } void good(char course[5][10],int num[4],float *pscore,float aver[4]) { int i,j,k,n; cout<<"=========students whose score is good========="<<endl; cout<<"NO. "; for(i=0;i<5;i++) cout<<course[i]<<" "; cout<<" average "<<endl; for(i=0;i<4;i++) { n=0; for(j=0;j<5;j++) if(*(pscore+5*i+j)>85.0)n++; if(n==5||(aver[i]>=90)) { cout<<num[i]<<" "; for(k=0;k<5;k++) { cout<<*(pscore+5*i+k)<<" "; cout<<" "<<aver[i]; } } } }