指针与二维数组 行指针与列指针

来源:互联网 发布:王家卫句式知乎 编辑:程序博客网 时间:2024/06/07 17:08

问题:3个学生4个科目 分数统计中的二维数组 利用指针
运行结果

#include <stdio.h>float average(float *p,int n){    float *pend=p+n-1;    float sum=0;    for(;p<pend;p++)    {        sum+=*p;    }    return sum/n;}void search(float (*p)[4],int n){    printf("第%d个学生的分数:\n",n+1);    for(int i=0;i<4;i++)    {        printf("%4.0f",*(*(p+n)+i));    }    putchar('\n');}void pint(float (*p)[4]){    int i,j;    for(i=0;i<3;i++){        int flag=0;        for(j=0;j<4;j++)        if(*(*(p+i)+j)<60)  flag=1;        if(flag==1)        {            printf("第%d个学生的成绩:\n",i+1);            for(int j=0;j<4;j++)            printf("%4.0f",*(*(p+i)+j));            putchar('\n');        }    }}int main(){    float a[3][4]={{90,91,98,97},{89,87,95,94},{65,45,25,89}};    int i,j;    for(i=0;i<3;i++)    {        for(j=0;j<4;j++)        printf("%4.0f",a[i][j]);        putchar('\n');    }//求平均值 传入列指针  即a[0][0]的地址    printf("平均值为:%f\n",average(*a,12));    //查找第二个学生的分数  即传入行指针 即a的地址     search(a,2);     //输出不及格的学生的分数 即传入行指针 即a的地址     pint(a);     return 0;} 
原创粉丝点击