指针平均成绩计算
#include <stdio.h>
void average(float*p,int n)
{
float *p_end; //申请一个指针变量
float sum=0,aver;
p_end=p+n-1; //用指针变量去计算最后一个元素的地址
for(;p<=p_end;p++)
{
sum=sum+(*p); //通过对指针变量的地址进行解引用,拿到这个地址存储的数据
}
aver=sum/n;
printf("学生成绩平均分=%5.2f\n",aver);
}
void search(float(*p)[4],int n)// (*p)[4]表示行指针.通过实参传来的地址进行操作,所指对象一行有四个元素 ,
{
int i;
printf("这是第%d成绩\n",n);
for(i=0;i<4;i++)
{
printf("%5.2f",*(*(p+n)+i)); // *(*(p+n)+i)代表第n行第i列的元素
}
printf("\n");
}
int main()
{
float score[3][4]={{78,89,85,89},{85,75,86,84},{92,89,85,76}}; //申请一个数组
average(*score,12); //调用函数,将数组首元素地址和数组元素个数传给函数
search(score,2); //调用函数查询某人成绩
return 0;
}
本文来自博客园,作者:ETTA-7,转载请注明原文链接:https://www.cnblogs.com/etta-7/

浙公网安备 33010602011771号