Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124601
  • 博文数量: 52
  • 博客积分: 2200
  • 博客等级: 大尉
  • 技术积分: 580
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-08 15:00
文章分类

全部博文(52)

文章存档

2011年(1)

2009年(51)

我的朋友

分类:

2009-10-08 16:25:11

/*=============================================================
  有个班,3个学生,各学4门课,计算总平均分数,以及输出第n个学生的成绩 和平均成绩
    算法分析:
            1、定义一个指针变量指向成绩数组的列元素,逐个元素移动求算总平均成绩
            2、定义一个指向4个元素的指针变量,逐行移动求取第n个学生的平均成绩和各门课的成绩             
==============================================================
             作者:最后的村长
             时间:2009年10月28日
             工具:DEV C++ 4.9.9.2
             version:1.0
==============================================================*/
#include
#include
#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);
      }

阅读(2535) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~