系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。

喜欢的同学记得点赞、转发、收藏哦~

后续C语言经典100例将会以pdf和代码的形式发放到公众号

欢迎关注:计算广告生态 即时查收

1 题目

函数:search()

功能:查找成绩不及格的学生

描述:有 4 名学生的成绩,找出至少有一科不及格的学生,并将成绩列表输出(规定60以下为不及格)

目标:重点理解 int (*p)[N] 的使用方法

c语言怎么求分数段人数(C语言100题集合022-查找成绩不及格的学生)(1)

2 思路

int*p[5] 和 int(*p)[5] 的区别

#include <stdio.h> void search(float (*p)[4], int n) { printf("序号为 %d 的学生的成绩:\n", n); for (int i = 0; i < 4; i) { printf("%5.2f ", *(*(p n) i)); } } int main(int argc, char const *argv[]) { float score[3][4]={{60,75,82,91},{75,81,91,90},{51,65,78,84}}; search(score, 2); // 计算得出序号为 2 的学生的成绩 getchar(); } ~~~~~~~~~~~操作结果~~~~~~~~~~~~ $ gcc ex022-1.c -o demo ./yaojianguodeMacBook-Pro:C语言100题集合代码 yaojianguo$ ./demo 序号为 2 的学生的成绩: 51.00 65.00 78.00 84.00

3 代码

#include<stdio.h> #include<stdlib.h> #defineN5 /** 函数:search() 功能:查找成绩不及格的学生 描述:有4名学生的成绩,找出至少有一科不及格的学生,并将成绩列表输出(规定60以下为不及格) **/ int*search(int(*p)[N]){ int*pt=*(p 1); for(inti=0;i<4; i){ if(*(*(p 0) i)<60){//这块可以写成*(*p i)<60,也就是平常看到了*(*(p m) n))来取到二维数组中列向的值 pt=*p; } } returnpt; } intmain(intargc,charconst*argv[]){ int*p; intscore[][N]={{60,75,82,91},{75,81,91,90},{51,65,78,84},{65,72,78,72},{75,70,98,92}};//四个学生的成绩 for(inti=0;i<N; i){ p=search(score i); if(p==*(score i)){ printf("成绩不及格学生的成绩分别是:\n"); for(intj=0;j<4; j){ printf("%d",*(p j)); } } } getchar(); }

示例结果:

$gccex022.c-odemo $./demo 成绩不及格学生的成绩分别是: 51657884

--END--

喜欢本文的同学记得点赞、转发、收藏~

更多内容,欢迎大家关注我们的公众号:计算广告生态

后续C语言经典100例将会以pdf和代码的形式发放到公众号

同时也带来更多系列文章以及干货❤️!

,