看了答案,发现做的好粗糙
程序代码:
#include<stdio.h> void average(float(*p)[6]) { int i, j; float sum = 0, aver; for (j = 1; j < 6; j++) { for (i = 0; i < 4; i++) sum = sum + *(*(p + i) + j); aver = sum / 4; break; } printf("第一门课的平均分是\naver=%5.2f\n", aver); } void search(float(*p)[6]) { int i, j, k; float sum, aver; for (i = 0; i < 4; i++) { k = 0; sum = 0; aver = 0; for (j = 1; j < 6; j++) if (*(*(p + i) + j) < 60.0) k++; if (k >= 2) { printf("两门以上不及格的学生的学号及全部成绩是:\n"); for (j = 0; j < 6; j++) printf("%11.2f", *(*(p + i) + j)); printf("\n"); for (j = 1; j < 6; j++) sum = sum + *(*(p + i) + j); aver = sum / 5; printf("该生的平均分是\naver=%5.2f\n", aver); } } } int main() { void average(float(*p)[6]); void search(float(*p)[6]); float a[4][6] = { {101,34,56,88,99,89},{102,27,88,99,67,78},{103,99,90,87,86,89},{104,78,89,99,56,77} }; average(a); search(a); return 0; }