1. 程式人生 > >C語言指標實現計算平均分等功能

C語言指標實現計算平均分等功能

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];
			 }
		 }
	 }
 }