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

猜你喜欢

转载自blog.csdn.net/qq_24163555/article/details/83450399
今日推荐