您的位置:首页 > 其它

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

2017-09-28 17:30 1016 查看
  输入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
[4],ave,*s;

int n,i,j,a
;

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐