通过指针处理二维数组
程序要求:有四个学生成绩(四个科目),通过函数,将有不及格科目的学生的所有成绩输出,并输出其学号。
源代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float score[][4] = ; //自行赋值,或scanf输入。
float *search(float((*pointer)[4])), *p = NULL;
int i = 0, j = 0;
for (i = 0; i < 4; i++)
{
p = search(score + i);
if (p == *(score + i))
{
printf("No.%d score:", i);
for (j = 0; j < 4; j++)
printf("%-6.2f", *(p + j));
printf("\n");
}
}
}
float *search(float (*pointer)[4])
{
int i = 0;
float *pt = NULL;
for (i = 0; i < 4; i++)
if (*(*pointer + i) < 60)
pt = *pointer;
return pt;
}
运行结果
No.0 score:60.00 95.00 54.00 83.00
No.2 score:54.00 79.00 68.00 82.00
No.3 score:56.00 65.00 70.00 62.00
过程分析


肥柴代码之家 2020-06-24