题目:有一个班4个学生,5门课程。1、求第一门课程的平均分;2、找出有两门课程以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩;3、找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编3个函数实现以上3个要求

在这之前,一直对
int (*pointer)[ num ]
这种用法产生了误解,导致在之前的练习中,多次的不正确使用,程序无法正常的运行。
通过这道题目 应该算是有了个比较清楚的认识了。

当有这么有一个数组时:

int (*p)[4];
int a[3][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,23}},p = a;

int (*p)[4]; 表示定义p为一个指针变量,它指向包含4个整型元素的一维数组

p的类型不是int ,而是 int()[4]型 p被定义为指向一维整型数组的指针变量,一维数组有4个元素,因此P的基类型是一维数组 其长度是16字节。

#include<stdio.h>{void average(int (*p)[5],int n );  //形参为一维整型数组的指针
void fail(int * p);
void excellent(int *p);int grades[4][5] = {{68,39,98,45,66},{87,89,93,94,80},{75,65,88,74,59},{99,88,77,87,90}};
//int (*pt)[4] = grades;
average(grades, 4);   //  所以这里需要把grades的首地址当实参传给函数
fail(grades,4);
excellent(grades,4);
return 0;
}void average(int (*p)[5] ,int n){int i,sum = 0,aver = 0;for(i=0;i<4;i++){sum += *(*(p+i)+0);}aver = sum/4;printf("第一门课程的平均分 :%d \n",aver );printf("\n");
}void fail(int (*p)[5],int n){int i,j,count=0,num=0,k;for(i=0;i<n;i++){for(j=0;j<5;j++){if(*(*(p+i)+j) < 60){count++;}}if(count >= 2){int sum=0,aver=0;printf("学号 :%d\n",i+1 );printf("全部课程的成绩 :");for(k=0;k<5;k++){printf("%3d ",*(*(p+i)+k) );sum += *(*(p+i)+k);}printf("\n");aver = sum/ 5;printf("平均分 :%d\n",aver );printf("\n");}count = 0;}
}void excellent(int (*p)[5],int n){int i,j,aver=0,sum=0;for(i=0;i<4;i++){for(j=0;j<5;j++){sum += *(*(p+i)+j);}aver = sum / 5;if(aver >90){printf("%d\n",i+1 );break;}if(*(*(p+i)+0)>85&&*(*(p+i)+1)>85&&*(*(p+i)+2)>85&&*(*(p+i)+3)>85&&*(*(p+i)+4)>85){printf("%d\n",i+1 );break;}}
}

C 语言:有一个班4个学生,5门课程。相关推荐

  1. 有一个班4个学生,5门课程①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生分别编3个函数实

    有一个班4个学生,5门课程. ①求第1门课程的平均分; ②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩; ③找出平均成绩在90分以上或全部课程成绩在85分以上的学生. 分别编 ...

  2. 有一个班4个学生,5门课程。

    ①求第1门课程的平均分; ②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩; ③找出平均成绩在90分以上或全部课程成绩在85分以上的学生. 分别编3个函数实现以上3个要求. 代 ...

  3. 汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序;2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出

    汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序:2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出 选择排序(Selection sort)是一种简单直观的排 ...

  4. 输入5个学生某门课程的成绩(用一维数组表示),分别用函数实现下列功能:

    输入5个学生某门课程的成绩(用一维数组表示),分别用函数实现下列功能: 要求:学生成绩及学生个数均由main函数传递给被调用函数,形参采用指针形式. 1)输出这5个学生的平均成绩 2)输出5个学生中的 ...

  5. c语言利用指针函数等完成学生成绩管理系统,课程设计C语言可视化程序学生成绩管理系统...

    <课程设计C语言可视化程序学生成绩管理系统>由会员分享,可在线阅读,更多相关<课程设计C语言可视化程序学生成绩管理系统(37页珍藏版)>请在人人文库网上搜索. 1.C语言可视化 ...

  6. c语言作业 统计成绩,C语言作业 输入多名学生3门课程成绩,并统计成绩的平均分和总分,并根据总分输出名次。...

    如一楼所言,没有多少人有这个时间来给你写.如果你只是为了交作业,建议你端正你的学习态度.如果你是一名学生成绩管理人员,建议稍微学一下Office,用Office进行学生成绩查询排名是很快的,拜托你能不 ...

  7. c语言输入6名学生5门课程的成绩,求解输入10个学生5门课的成绩,分别用函数实现下列功能:...

    我也写了一个,没有测试,不知对不对! #include int main(void) { int a[10][5], i, j;/*表示是10个学生,五门课程的成绩的数组*/ int average( ...

  8. C语言习题:输入10个学生5门课的成绩,分别用函数实现下列功能:①计算每个学生的平均分;②计算每门课的平均分;③找出所有50个分数中最高的分数所对应的学生和课程;④计算平均分方差;

    ***题目:***输入10个学生5门课的成绩,分别用函数实现下列功能: ①计算每个学生的平均分; ②计算每门课的平均分; ③找出所有50个分数中最高的分数所对应的学生和课程; ④计算平均分方差; /* ...

  9. C语言习题:输入10个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出所有分数中最高分

    初学C语言,然后遇到一题: 输入10个学生5门课的成绩,分别用函数求:①每个学生平均分:②每门课的平均分:③找出所有分数中最高分 直接上代碼 注:自定义函数(xpj,kpj,maxj)我直接放在最前面 ...

最新文章

  1. linux内存之buff/cache
  2. 掌握这些!让Python不再从入门到放弃,初学者容易忽略的一些细节
  3. 安装后jdk1.8 配置环境变量以后 版本显示还是1.7
  4. vue-cli4.x 中 配置允许跨域请求
  5. qt下QString转换为const char*字符串
  6. oracle删除唯一索引sql语句_高级SQL之在选择语句中使用更新和删除
  7. attrib批量显示文件夹_1.2Windows之DOS命令基础篇-学习attrib+del+copy+xcopy命令
  8. 讲解Java中的String几种类型
  9. win7必须重新启动计算机才能应用这些更改,专家支招:当商用计算机遇到必须重新启动才能生效的更新...
  10. android动画帧率_Android流畅度之帧率
  11. 约瑟夫环C语言链表实现
  12. Microsoft.NET离线运行库合集
  13. pythonallowpos_基于Python的诗和远方
  14. 原生js删除html,javascript删除一个html元素节点的方法
  15. 微信小程序开发学习笔记一
  16. 关于康托展开的用途及写法
  17. jack编译突然无法编译的问题
  18. 计算机科学与技术班徽图片,智慧教室平台教学系统在中职计算机专业教学中的应用...
  19. 【NOIP模拟】旷野大计算
  20. 商场/购物中心会员营销活动方案

热门文章

  1. RS Browser Forensics下载|RS Browser Forensics(浏览器提取恢复工具)破解版下载 v1.0
  2. Linux 包管理基础:apt、yum、dnf 和 pkg
  3. 开发过程中的小问题,马克一下算是记一遍了。
  4. Electron教程(四)使用 Vue Browser 版,创建小工具应用
  5. 很经典话,随便一句都可以当做QQ签名
  6. 中值滤波原理及c++实现
  7. 临江仙 夜饮东坡醒复醉
  8. 点云 3D 分割 - SqueezeSeg(ICRA 2018)
  9. 什么是超级计算机技术,超级计算机有什么用,带你了解什么是超级计算
  10. nginx 杂文----01