正文

有个班,3个学生,各学4门课,计算总平均分数,以及输出第n个学生的成绩 和平均成2009-10-07 22:41:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/cunzhang/48992.html

分享到:

/*=============================================================
  有个班,3个学生,各学4门课,计算总平均分数,以及输出第n个学生的成绩 和平均成绩
    算法分析:
            1、定义一个指针变量指向成绩数组的列元素,逐个元素移动求算总平均成绩
            2、定义一个指向4个元素的指针变量,逐行移动求取第n个学生的平均成绩和各门课的成绩             
==============================================================
             作者:最后的村长
             时间:2009年10月28日
             工具:DEV C++ 4.9.9.2
             version:1.0
==============================================================*/
#include <stdio.h>
#include <stdlib.h>
#define N 3
#define M 4
/*=============================================================*/
int main()
{
    void average(float *p,int n) ;//声明求总平均成绩函数
    void search(float (*p)[4],int n);//声明求第n个学生平均成绩和输出各门课成绩函数
    float score[N][M]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};
    average(score[0],N*M);//求总平均成绩函数 ,以指向首个元素地址的指针变量为实参
    search(score,2);//求第n个学生平均成绩和输出各门课成绩函数 ,以数组的首地址为实参变量

    system("PAUSE");
    return 0;
   
}
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);//sum等于各个元素之和
     aver=sum/n;//求总平均成绩
     printf("平均成绩=%5.2f\n",aver);
 }
 void search(float (*p)[4],int n)//定义指向一维4个元素的指针变量
 {
      int i;
      float sum=0,average_solo;
      printf("第%d个学生的成绩是:\n",n+1);
      for(int i=0;i<4;i++)
      {
              sum=sum+*(*(p+n)+i);//求取第n个学生的总成绩
              printf("  %5.2f  ",*(*(p+n)+i));//按行移动输出第n个学生的各门课的成绩
              }
              average_solo=sum/M;//求第n个学生的平均成绩
              printf("\n第%d个学生的平均成绩是:%5.2f\n",n+1,average_solo);
      }

阅读(4254) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册