3_1_1C.C
上传用户:wyn840322
上传日期:2007-01-13
资源大小:294k
文件大小:2k
源码类别:

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程式实例: 3_1_1c.c                  */
  3. /*    计算各科平均成绩(动态记忆体配置)      */
  4. /* ======================================== */
  5. #include <stdlib.h>
  6. void main()
  7. {
  8.    struct grade                   /* 成绩结构宣告     */
  9.    {
  10.       int math;                   /* 数学成绩         */
  11.       int english;                /* 英文成绩         */
  12.       int computer;               /* 电脑成绩         */
  13.    };
  14.    struct grade *student;         /* 结构阵列变数宣告 */
  15.    int i;
  16.    int num;                       /* 学生人数         */
  17.    int m_sum,e_sum,c_sum;         /* 各科成绩总分变数 */
  18.    float m_ave,e_ave,c_ave;       /* 各科平均成绩变数 */
  19.    m_sum = e_sum = c_sum = 0;     /* 总分初值         */
  20.    printf("请输入学生人数 ==> ");
  21.    scanf("%d",&num);              /* 读取学生人数     */
  22.    student = (struct grade *)     /* 配置记忆体       */
  23.              malloc(num * sizeof(struct grade));
  24.    if ( !student )                /* 检查指标         */
  25.    {
  26.       printf("内存分配失败! n");
  27.       exit(1);
  28.    }
  29.    for ( i = 0; i < num; i++ )
  30.    {
  31.       printf("学生编号: %dn",i + 1);
  32.       printf("请输入数学成绩. ==> ");
  33.       scanf("%d",&student[i].math);     /* 读取数学成绩 */
  34.       m_sum += student[i].math;         /* 计算数学总分 */
  35.       printf("请输入英语成绩. ==> ");
  36.       scanf("%d",&student[i].english);  /* 读取英文成绩 */
  37.       e_sum += student[i].english;      /* 计算英文总分 */
  38.       printf("请输入计算机成绩. ==> ");
  39.       scanf("%d",&student[i].computer); /* 读取电脑成绩 */
  40.       c_sum += student[i].computer;     /* 计算电脑总分 */
  41.    }
  42.    m_ave = (float) m_sum / (float) num; /* 计算数学平均 */
  43.    e_ave = (float) e_sum / (float) num; /* 计算英文平均 */
  44.    c_ave = (float) c_sum / (float) num; /* 计算电脑平均 */
  45.    printf("数学平均成绩: %6.2f n",m_ave);
  46.    printf("英语平均成绩: %6.2f n",e_ave);
  47.    printf("计算机平均成绩: %6.2f n",c_ave);
  48. }