zoukankan      html  css  js  c++  java
  • 返回指针值的函数小练习--处理学生成绩

    题目:一个班有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 个学生成绩:
    ",i+1);
    10         for(int j=0;j<5;j++){
    11             scanf("%d",&a[i][j]);
    12         }
    13     }
    14     avg1(a); 
    15     printf("
    ");
    16     fail2(a);
    17     printf("
    ");
    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 分
    ",(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 个学生有两门以上不及格,他的成绩如下:
    ",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("
    ");
    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 }

     运行结果:

    务实,说实话!
  • 相关阅读:
    功能测试--评论测试点
    airtest自动化测试工具使用
    jmeter录制脚本失败原因(windows为例)
    测试APP电量、内存、网络流量工具----GT
    Java--使用反编译工具,打开jar包,查看源码
    jmeter(图片进行base64加密发送)
    jmeter之永久性修改为中文显示界面方法
    jmeter之发送请求失败,乌龙---千万不要在请求体的写注释
    jmeter使用BeanShell进行简单的base64加密
    使用JS报错 xx is not defined at HTMLAnchorElement.onclick
  • 原文地址:https://www.cnblogs.com/xtuxiongda/p/8319286.html
Copyright © 2011-2022 走看看