有一个班4个学生,5门课程。①求第1门课程的平均分;②找出有两门以上课程
不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上
或全部课程成绩在85分以上的学生。分别编3个函数实现以上3个要求。要求用指针方法处理。
#include<stdio.h> int main() {void avsco(float *,float*); void avcourl(char(*)[10],float*); void fali2(char course[5][10],int num[],float *pscore,float aver[4]); void good(char course[5][10],int num[4],float *pscore,float aver[4]); int i,j,*pnum,num[4]; float score[4][5],aver[4],*pscore,*paver; char course[5][10],(*pcourse)[10]; printf("input course:\n'); pcourse=course; for(i=0;i<5;i++) scanf("%s",course[i]); printf("inputNO.and scores:\n”); printf("NO."); for(i=0;i<5;i++) printf(",%s",course[i]); printf("\n"); pscore=&score[0][0]; pnum=&num[0]: for(i=0;i<4;i++) {scanf("%d”,pnum+i); for (j=0;j<5;j++) scanf("9%f",pscore+5*i+j); } paver=&aver[0]; printf("\n\n"); avsco(pscore,paver); //求出每个学生的平均成绩 avcourl(pcourse,pscore); //求出第一门课的平均成绩 printf("\n\n”); fali2(pcourse,pnum,pscore,paver); //找出2门课不及格的学生 printf("\n\n”); 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=sum+(*(pscore+5*i+j)); //计每个学生的各科成绩 average=sum/5; //计算平均成绩 *(paver+i)=average; } } void avcourl(char(pcourse)[10],float *pscore) //求第一课程的平均成绩的函数 {int i; float sum,averagel; sum=0.0; for (i=0;i<4;i++) sum=sum+(*(pscore+5*i)); //累计每个学生的得分 averagel=sum/4; //计算平均成绩 printf("course 1:%s average score:%7.2f\n",*pcourse,averagel); } void fali2(char course[ 5][10],int num[],float *pscore, float aver[4]) //找两门以上课程不及格的学生的函数 {int i,j,k,label; printf(" ==========Student who is fail in two course======= \n"); printf("NO."); for (i=0;i<5;i++) printf("%11s",cour se[i]); printf(" average\n'); for (i=0;i<4;i++) {1abel=0; for(j=0;j<5;j++) if(*(pscore+5*i+j)<60.0)label++; if (label>=2) {printf("%d",num[i]); for(k=0;k<5;k++) printf("%11.2f",*(pscore+5*i+k)); printf("%11.2f\n”,aver[i]); } } } void good(char course[5][10],int num[4],float *pscore,filoat aver[4]) ∥找成绩优秀学生(各门85以上或平均90分以上)的函数 {int i,j,k,n; printf(" ======Students whose score is good======\n”); printf("NO."); for(i=0;i<5;i++) printf("%11s",course[i]); printf(" average\n"); 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)) {printf("%d",num[i]); for(k=0;k<5;k++) printf("%11.2f",*(pscore+5*i+k)); printf("%11.2f\n",aver[i]); } } }
#include<stdio.h>
int main()
{void avsco(float *,float*);
void avcourl(char(*)[10],float*);
void fali2(char course[5][10],int num[],float *pscore,float aver[4]);
void good(char course[5][10],int num[4],float *pscore,float aver[4]);
int i,j,*pnum,num[4];
float score[4][5],aver[4],*pscore,*paver;
char course[5][10],(*pcourse)[10];
printf("input course:\n');
pcourse=course;
for(i=0;i<5;i++)
scanf("%s",course[i]);
printf("inputNO.and scores:\n”);
printf("NO.");
for(i=0;i<5;i++)
printf(",%s",course[i]);
printf("\n");
pscore=&score[0][0];
pnum=&num[0]:
for(i=0;i<4;i++)
{scanf("%d”,pnum+i);
for (j=0;j<5;j++)
scanf("9%f",pscore+5*i+j);
}
paver=&aver[0];
printf("\n\n");
avsco(pscore,paver); //求出每个学生的平均成绩
avcourl(pcourse,pscore); //求出第一门课的平均成绩
printf("\n\n”);
fali2(pcourse,pnum,pscore,paver); //找出2门课不及格的学生
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;
sum=sum+(*(pscore+5*i+j)); //计每个学生的各科成绩
average=sum/5; //计算平均成绩
*(paver+i)=average;
void avcourl(char(pcourse)[10],float *pscore) //求第一课程的平均成绩的函数
{int i;
float sum,averagel;
sum=0.0;
sum=sum+(*(pscore+5*i)); //累计每个学生的得分
averagel=sum/4; //计算平均成绩
printf("course 1:%s average score:%7.2f\n",*pcourse,averagel);
void fali2(char course[ 5][10],int num[],float *pscore, float aver[4])
//找两门以上课程不及格的学生的函数
{int i,j,k,label;
printf(" ==========Student who is fail in two course======= \n");
for (i=0;i<5;i++)
printf("%11s",cour se[i]);
printf(" average\n');
{1abel=0;
for(j=0;j<5;j++)
if(*(pscore+5*i+j)<60.0)label++;
if (label>=2)
{printf("%d",num[i]);
for(k=0;k<5;k++)
printf("%11.2f",*(pscore+5*i+k));
printf("%11.2f\n”,aver[i]);
void good(char course[5][10],int num[4],float *pscore,filoat aver[4])
∥找成绩优秀学生(各门85以上或平均90分以上)的函数
{int i,j,k,n;
printf(" ======Students whose score is good======\n”);
printf("%11s",course[i]);
printf(" average\n");
for(i=0;i<4;i++)
{n=0;
if(*(pscore+5*i+j)>85.0)n++;
if((n==5)||(aver[i]>=90))
for(k=0;k<5;k++)
printf("%11.2f\n",aver[i]);
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题