输入m个学生,每个学生有4门课,在主调函数中输入学生的相关信息,编写三个函数: (1)求第一门课的平均分; (2)找出有两门课以上不及格的学生,并输出他们的学号和全部成绩,要求用指针函数实现:fl

欢迎加qq群:453398542 学习讨论,会定期分享资料课程,解答问题。  

输入m个学生,每个学生有4门课,在主调函数中输入学生的相关信息,编写三个函数:

(1)求第一门课的平均分;

(2)找出有两门课以上不及格的学生,并输出他们的学号和全部成绩,要求用指针函数实现:float*Search(float(*p)[4],int n);

(3)找出全部成绩在85分以上的学生。

#include<stdio.h>

#define N 40

float average(float (*p)[4],int n)

{

int i;

float ave=0;

for(i=0;i<n;i++)

ave=ave+**(p+i);

ave=ave/n;

return ave;

}

 

float *Search(float (*p)[4],int n){

//找两门不及格的同学 

int j,count=0;

for (j=0;j<4;j++){

if(*(*(p+n)+j)<60)

count++;

}

if(count>2)

return *(p+n);

else

   return NULL; 

}

void Good(int a[],float (*p)[4],int n){

//两门成绩85以上 

int i,j,flag;

for (i=0;i<n;i++){

flag=1;

for (j=0;j<4&&flag;j++){

if (*(*(p+i)+j)<85)

      flag=0;

}

if (flag){

printf("%6d",a[i]);

for (j=0;j<4;j++)

  printf("%6.1f",*(*(p+i)+j));

 printf("\n");

  }

}

}

 

int main()

{

float score[N][4],ave,*s;

int n,i,j,a[N];

printf("输入学生个数:\n");

scanf("%d",&n);

printf("输入%d个学生的学号与成绩:\n",n);

for(i=0;i<n;i++){

scanf("%d",&a[i]);

for(j=0;j<4;j++)

scanf("%f",&score[i][j]);

}

ave=average(score,n);

printf("第一门课的平均成绩为:%.2f\n",ave);   

printf("两门课以上不及格的同学的学号和成绩为:\n");

 for (i=0;i<n;i++){

s=Search(score,i);

if (s){

printf("%6d",a[i]);

for (j=0;j<4;j++)

    printf("%6.1f",score[i][j]);

    printf("\n");

}

}

printf("全部成绩在85分以上的学生的学号和成绩:\n");

Good(a,score,n);

return 0;

}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值