习题 7.14 输入10个学生5门课的成绩,分别用函数实现下列功能:

来源:互联网 发布:知之深爱之切电子书 编辑:程序博客网 时间:2024/05/17 23:05

C程序设计(第四版) 谭浩强 习题7.14 个人设计

习题 7.14 输入10个学生5门课的成绩,分别用函数实现下列功能:

1. 计算每个学生的平均分;

2. 计算每门课的平均分;

3. 找出所有50个分数中最高的分数所对应的学生和课程;

4. 计算平均分方差:

s=1nx2i(xin)2

其中,xi为某一学生的平均分。

代码块:

#include <stdio.h>#include <math.h>void aver_stu(int t[][5]);void aver_course(int t[][5]);void high(int t[][5]);void vari(int t[][5]);main(){    int stu[10][5];    int i, j;    for (i = 0; i < 10; i++)        for (j = 0; j < 5; j++)            scanf("%d", &stu[i][j]);    aver_stu(stu);    aver_course(stu);    high(stu);    vari(stu);    return 0;}void aver_stu(int t[][5]){    int i, j;    float k, ave;    for (i = 0; i < 10; i++){        for (j = 0, k = 0.0; j < 5; j++)            k += t[i][j];        ave = k / 5;        printf("No.%d student average is %f\n", i+1, ave);    }}void aver_course(int t[][5]){    int i, j;    float k, ave;    for (j = 0; j < 5; j++){        for (i = 0, k = 0.0; i < 10; i++)            k += t[i][j];        ave = k / 10;        printf("No.%d course average is %f\n", i+1, ave);    }}void high(int t[][5]){    int i, j, h, stu, cour;    for (i = 0, h = 0, stu = 0, cour = 0; i < 10; i++){        for (j = 0, j < 5; j++)            if (t[i][j] > h){                h = t[i][j];                stu = i + 1;                cour = j + 1;            }    }    printf("The highest score is %d, from No.%d student & No.%d course\n", h, stu, cour);}void vari(int t[][5]){    int i, j, k, m;    float temp[10], var, x1, x2;    for (i = 0, m = 0; i < 10; i++, m++){        for (j = 0, k = 0; j < 5; j++)            k += t[i][j];        temp[m] = k / 5;    }    for (i = m = x1 = x2 = 0; i < 10; i++){        x1 += pow(temp[i], 2);        x2 += temp[i];    }    var = x1 / 10 - pow(x2/10, 2);    printf("The variance is %f\n", var);}
阅读全文
0 0
原创粉丝点击