自考“高級(jí)語言程序設(shè)計(jì)”習(xí)題答案詳解(43)

字號(hào):

4.編一個(gè)程序,輸入下列學(xué)生成績(jī)表中的數(shù)據(jù),并用結(jié)構(gòu)體數(shù)組存放,然后統(tǒng)計(jì)并輸出三門課程的名稱和平均分?jǐn)?shù)。
    name foxbase pascal c
    wang 98.0 87.0 77.0
    qian 90.5 91.0 88.0
    sun 74.0 77.5 66.5
    li 84.5 64.5 55.0
    「解」類似上一程序,直接給出程序如下:
    # include
    # include
    # define N 100
    struct stu {
    char namep[20];
    int foxbase;
    int pascal;
    int c;
    } students[N], *p;
    void main ()
    { int n, sf, sb, sc;
    char buf[120];
    printf(“輸入n(< %d) ! \n”, N);
    do {
    scanf(“%d”, &n);
    if(n>0 && n    printf(“輸入 n不合理! 請(qǐng)重新輸入! \n”);
    } while(1);
    printf(“輸入%d個(gè)人的姓名、Foxbase成績(jī)、Pascal成績(jī)、C成績(jī) \n”, n);
    for( p= students;p< students+n; p++);
    scanf(“%s”,buf );strncpy(p -> name, buf, 19);
    scanf(“%d%d%d”, &p -> foxbase,&p -> pascal,&p -> c)
    }
    sf=sb=sc =0;
    for( p=students; p    sf+= p -> foxbase; sb+= p -> pascal; sc+= p -> c;
    }
    printf(“Foxbase:%.2f \t Pascal:%.2f \t c:%.2f \n”,
    (float)sf/n,(float)sb/n,(float)sc/n);
    }