设为首页 加入收藏

TOP

返回指针值的函数小练习--处理学生成绩
2018-10-21 18:09:58 】 浏览:52
Tags:返回 指针 函数 练习 处理 学生 成绩

题目:一个班有4名学生,5门课程,分别写三个函数实现以下功能

1.求第一门课程的平均分

2.找出两门以上不及格学生,输出其学号,全部成绩及平均成绩

3.找出平均成绩在90分以上,及全部成绩在85分以上的学生

思路:这题就是对返回指针值的函数知识点的巩固。唯一需要注意的是,我们要在函数中处理二维数组时,实参是二维数组名,形参是指向一维数组的指针变量,具体看代码

 

 1 #include<stdio.h>
 2 int main(){
 3     void avg1(int (*p)[5]);
 4     void fail2(int (*p)[5]);
 5     void dalao(int (*p)[5]);
 6     int a[4][5];
 7     
 8     for(int i=0;i<4;i++){
 9         printf("请输入第 %d 个学生成绩:\n",i+1);
10         for(int j=0;j<5;j++){
11             scanf("%d",&a[i][j]);
12         }
13     }
14     avg1(a); 
15     printf("\n");
16     fail2(a);
17     printf("\n");
18     dalao(a);
19 }
20     //求第一门课的平均成绩 
21 void avg1(int (*p)[5]){
22         int sum=0;
23         for(int i=0;i<4;i++){
24             sum=sum+*(*(p+i)+0);
25         }
26         printf("第一门课的平均成绩为 %.2f 分\n",(float)sum/4);
27     }
28     //找出挂两门学生,并输出他们的全部成绩和平均成绩 
29 void fail2(int (*p)[5]){
30     int f;
31     int sum;
32     for(int i=0;i<4;i++){
33         f=0;sum=0;
34         for(int j=0;j<5;j++){
35             if(*(*(p+i)+j)<60) f++;
36             sum=sum+*(*(p+i)+j);
37         }
38         if(f>2){
39             printf("第 %d 个学生有两门以上不及格,他的成绩如下:\n",i+1);
40             for(int k=0;k<5;k++)
41               printf("%d ",*(*(p+i)+k));
42             printf(" 平均成绩为 %.2f",(float)sum/5);
43         }
44         printf("\n");
45     }
46 } 
47       //找出平均成绩在90分以上及全部成绩在 85分之上的优秀学生 
48 void dalao(int (*p)[5]){
49     int flag[4]={0,0,0,0};
50     int sum,g,c=0;
51     for(int i=0;i<4;i++){
52         sum=0;g=0;
53         for(int j=0;j<5;j++){
54              sum=sum+*(*(p+i)+j);
55              if(*(*(p+i)+j)>85) g++;
56         }    
57          if(g==5) flag[i]=1;
58          if((sum/5)>90) flag[i]=1;
59     }
60     for(int k=0;k<4;k++){
61         if(flag[k]==1) printf("第 %d 位学生符合标准",k+1);
62         else if(flag[k]==0) c++;
63     }
64     if(c==4) printf("无人符合标准"); 
65 }

 运行结果:

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇说说 typedef 的那些事 下一篇位域

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目