C--使用指针做的一个小程序

来源:互联网 发布:linux 组权限 设置 编辑:程序博客网 时间:2024/05/29 07:05

程序描述:

一个班中有四个学生,每个学生有五门课程

要求:

  1. 求第一门课程的平均分
  2. 找出有两门以上不及格学生,输出学号,全部课程成绩及平均分
  3. 找出平均成绩在90分以上或全部课程成绩在85分以上的学生

编写三个函数实现以上三个要求

代码

#include <stdio.h>int main(){    //声明函数    float getAvage(float arr[3][6]);     void getFailure(float (*p)[6]);     void getSuccess(float (*p)[6]);    int i,j;    //定义二维数组,用于保存数据,四行六列,多出来的一列用于保存学号    //为方便输入数据,这个地方仅设三个学生     float arr[3][6];    printf("请按照以下顺序输入数据,学号,数学,语文,英语,物理,化学\n");    for(i=0;i<3;i++){        printf("第%d个学生:\n",i+1);        for(j=0;j<6;j++){            scanf("%f",*(arr+i)+j);        }    }    printf("第一门的平均值为:%5.2f\n",getAvage(arr));    getFailure(arr);    getSuccess(arr);     return 0;}//实现第一个功能 float getAvage(float arr[3][6]){    int i;    float ava=0,sum=0,(*p)[6]=arr;     for(i=0;i<3;i++)        sum+=*(*(p+i)+1);    ava=sum/3;    return ava;} //实现第二个功能:找出有两门以上不及格学生,输出学号,全部课程成绩及平均分//参数为一个指向浮点型数组的指针变量  void getFailure(float (*p)[6]){    int i,j,k,std_num,num=0;    float sum=0;    for(i=0;i<3;i++){        for(j=0;j<6;j++){            if(*(*(p+i)+j)<60){                num++;            }        }        if(num>=2){//成绩两门不及格            //输出学号             std_num=(int)*(*(p+i));            printf("成绩两门不及格的学生学号:%d\n",std_num);            //输出成绩             printf("各科成绩:\n");            for(k=1;k<6;k++){                //计算该学生成绩总和                 sum+=*(*(p+i)+k);                 printf("%3.2f",*(*(p+i)+k));             }            //输出平均分            printf("\n平均分:\n");             printf("%3.2f\n",sum/5);         }        //计数器归零         num=0;        //成绩归零         sum=0;    }  } //第三个功能:找出平均成绩在90分以上或全部课程成绩在85分以上的学生 void getSuccess(float (*p)[6]){    int i,j,k,n;    float sum;    printf("优秀学生:\n");    //循环遍历计算平均分    for(j=0;j<3;j++){        for(i=1;i<6;i++){            if(*(*(p+j)+i)>85) n++;            sum+=*(*(p+j)+i);         }        //平均成绩在90分以上或全部课程成绩在85分以上的学生        if(sum/5>90||n==5){            printf("学号为:%d",(int)*(*(p+j)));        }         //成绩归零        sum=0;        //计数器归零        n=0;     }  }
原创粉丝点击