1.a个学生,有b门课程成绩,求不及格的学生的学号,和不合格的科目成绩
思路:定义一个数组存放a个学生,b门课程的成绩---在main函数中用for循环判断n个学生是否有不合格的成绩(hine)---定义指针指向指针函数(分别指向1,2...n个学生的科目成绩)---调用函数,不合格返回地址,否则返回NULL----判断是否为空当: ppos == *(score+i) 也就是不为空,往下执行,for循环打印不合格学生的成绩。
#include <stdio.h>int* getScores(int (*pstu)[4]){int *pt = NULL;int i = 4;for(i=0;i<4;i++){ //列判断是否有低于60分的成绩//如果有,把地址返回if(*((*pstu)+i)<60){pt = *pstu;return pt;}}return pt;}int main()
{int score[3][4] = {{22,33,44,55},{66,77,88,99},{22,11,44,59}};int *ppos;int i;int j;for(i = 0;i<3;i++) //i代表学生{//调用函数,不及格返回不及格的地址score,否则返回NULL;ppos = getScores(score + i); //第几个学生,意思是第几行if(ppos ==*(score + i)){ // 判断返回地址是否为空,不为空才继续执行printf("学生%d的成绩不及格:\n",i+1);printf("输出他的成绩:\n");for(j=0;j<4;j++){printf("%d ",*ppos++); //打印score[i][0]~score[i][3] 的值}printf("\n");}}return 0;
}