有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩(指针实现)
程序分析:
1.设计两个函数average和search分别用于计算总平均分书和输出第n个学生的成绩。
2.在average函数中定义一个指针* a_end指向最后一个元素的地址,通过指针自增一统计总成绩。
3.在search中定义指针p,指针p指向主函数传入的行号数的首元素的地址,通过for循环输出该学生的所有成绩。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
void average(double* a, int n);
void search(double(*a)[4], int n);
double score[3][4] = { {65,67,70,60},{80,87,90,81},{90,99,100,98} };
average(*score, 12);
printf("第二个学生的成绩为");
search(score, 2);
printf("\n");
system("pause");
return 0;
}
void average(double* a, int n)
{
double sum = 0;
double ave;
double* a_end = a + n - 1;
for (; a <= a_end; a++) {
sum = sum + (*a);
}
ave = sum / n;
printf("average=%5.2f\n", ave);
}
void search(double (*a)[4], int n)
{
double* p;
for (p = *(a+n-1); p < *(a+n-1)+4; p++)
{
printf("%5.2f ", *p);
}
}
调试结果: