C语言OJ项目参考(2969)学生成绩的处理

2969:学生成绩的处理

Description
  编写一个函数void calcscore(int n),在函数中输入n个人的成绩,计算最高分,最低分,总分和平均分,要求在主函数中调用函数calcscore计算各种成绩,并在主函数中输出各种计算结果。(使用全局变量在函数之间传递多个数据)

#include <stdio.h>
double HighScore; /*全局变量,最高分*/
double LowScore; /*全局变量,最低分*/
double SumScore; /*全局变量,总分*/
double AverageScore; /*全局变量,平均分*/
void calcscore(int n); /*函数声明*/
int main()
{
    int n;
    scanf("%d",&n);
    calcscore(n);
    printf("%g %g %g %g\n",HighScore,LowScore,SumScore,AverageScore);
    return 0;
}

主程序已给出,请完成calcscore函数并提交

Input
学生人数n和n个学生的成绩。

Output
n个人的最高分,最低分,总分和平均分

Sample Input
5
80 90 100 70 50

Sample Output
100 50 390 78

参考解答:

#include <stdio.h>
double HighScore; /*全局变量,最高分*/
double LowScore; /*全局变量,最低分*/
double SumScore; /*全局变量,总分*/
double AverageScore; /*全局变量,平均分*/
void calcscore(int n); /*函数声明*/
int main()
{
    int n;
    scanf("%d",&n);
    calcscore(n);
    printf("%g %g %g %g\n",HighScore,LowScore,SumScore,AverageScore);
    return 0;
}

void calcscore(int n)
{
    int i;
    double s;
    HighScore=-1;
    LowScore=1000;
    SumScore=0;
    for (i=0;i<n;i++)
    {
        scanf("%lf", &s);
        if(s>HighScore)
            HighScore=s;
        if(s<LowScore)
            LowScore=s;
        SumScore+=s;
    }
    AverageScore=SumScore/n;
    return;
}
时间: 2024-09-30 16:41:55

C语言OJ项目参考(2969)学生成绩的处理的相关文章

C语言OJ项目参考(2972)从文件中读数据

2972: 从文件中读数据 Description 文本文件score.dic 中存储了n名学生的信息(班级编号,姓名,成绩),每个学生信息占一行,每行的数据之间使用制表符分割,如下所示: 145811 fuxin 100 145811 chengxian 90 145812 zhangxue 92 145812 lijun 88 -- 文件中存储的学生信息按照班级编号升序排列,每个班级的人数可以不同,要求读取文件中所有学生的成绩,计算每个班级的平均成绩,将班级编号和平均成绩输出. 主程序已给出

C语言OJ项目参考(1047) 最大公约数和最小公倍数

1047: 求两个整数的最大公约数和最小公倍数 Description 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入. Input 两个数 Output 最大公约数 最小公倍数 Sample Input 6 15 Sample Output 3 30 HINT 主函数已给定如下,提交时不需要包含下述主函数 /* C代码 */ int main() { int n,m,gys,gbs; int gcd(int a, int b); int

C语言OJ项目参考(2000)数组逆序

Description 输入10个整数存入一维数组,按逆序重新存放后再输出. Input 输入包括一行.10个以空格隔开的整数. Output 逆序的10个整数,整数以空格隔开. Sample Input 1 3 5 9 7 6 8 2 4 0 Sample Output 0 4 2 8 6 7 9 5 3 1 提示:在OJ平台中,将有一个格式错误可能会让你崩溃.友情提示:输出的最后一个数字后面没有空格. 参考解答: #include <stdio.h> int main() { int a[

C语言OJ项目参考(2966) 循环画三角形

2966: 循环画三角形 Description 前几天,老师让良哥做一个画空心三角形的程序来取悦小师妹,可把良哥愁死了,C语言基础学得再扎实,算法不精也是硬伤呀!于是良哥又写好了主程序来找机前的你帮忙了^_^ #include <stdio.h> void holl_triangle(int n); /*函数声明*/ int main() { int n; scanf("%d",&n); /*输入行数n*/ holl_triangle(n); /*调用输入n行的空

C语言OJ项目参考(2013)一元二次方程Ⅱ

(2013)一元二次方程Ⅱ Description 求一元二次方程ax 2 +bx+c=0 的解.a,b,c为任意实数. Input 输入数据有一行,包括a b c的值. Output 按以下格式输出方程的根x1和x2.x1和x2之间有一个空格. x1 x2 (1)如果x1和x2为实根,则以x1>=x2输出. (2)如果方程是共轭复根,x1=m+ni,x2=m-ni,其中n>0. 其中x1, x2, m,n均保留2位小数. Sample Input 1 2 3 Sample Output -1

C语言OJ项目参考(1992)分数序列

(1992)分数序列 Description 有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, -编写程序求出这个序列的前n项之和. Input 输入只有一个正整数n,1≤n≤10. Output 输出该序列前n项和,结果保留小数后6位. Sample Input 3 Sample Output 5.166667 参考解答 #include <stdio.h> int main ( ) { int m1=2,m2=1, n, t, i; double sum=2; scanf

C语言OJ项目参考(1034) 求值

(1034) 求值 Description 求Sn=1!+2!+3!+4!+5!+-+n!之值,其中n是一个数字. Input n Output 和 Sample Input 5 Sample Output 153 参考解答 #include <stdio.h> int main ( ) { int n, i; long fact=1, sum=1; scanf("%d",&n); for(i=2;i<=n;i++) { fact=fact*i; sum+=f

C语言OJ项目参考(1056)输出已交换后的两个值

1056: (用宏)输出已交换后的两个值 Description 定义一个带参的宏(或者模板函数),带有三个参数,第一个参数为类型,后两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. Input 两个短整型数,空格隔开 两个小数,空格隔开 两个长整数,空格隔开 Outputt 交换后的两个数,空格隔开 Sample Input 1 2 1.5 2.5 65535 2147483647 Sample Outputt 2 1 2.5 1.5 2147483647 6

C语言OJ项目参考(2965)趣味取小数

2965: 趣味取小数 Description 听说大家最近学得不错,教授就准备考考大家,先做出来有奖哦~ 编写一个函数,取一个小数的第n(-10<=n<=16)位,当n大于0时,从小数点位置开始向右取小数部分第n位,当n小于0时,从小数点位置开始向左取整数部分的第n位. #include <stdio.h> #include <string.h> int get_one_digit(double num,int n); /*函数声明*/ int main() { do