提高篇十六讲——项目2- 成绩处理

本文介绍了一个使用C语言实现的成绩统计程序,能够处理输入的学生成绩数据,并输出最高分、最低分、平均分以及相应的学号。此外,还实现了成绩的标准偏差计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

【项目2- 成绩处理】
在数组score中将要存储某小组C程序设计的成绩,请完成下面的处理:
(1)输入小组人数及成绩,要保证成绩在0-100之间;
(2)输出该小组的最高成绩、最低成绩、平均成绩;
(3)输出考得最高成绩和最低成绩的同学的人数;
(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
(5)(选做)求出所有同学成绩的标准偏差,标准偏差公式为,其中为样本(即某同学成绩),为均值(前面已经求出),N为样本数目;

程序代码

#include <stdio.h>
#include <math.h>
#define SIZE 100
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun138.c
*作者:小臣小仁
*完成日期:2017年4月9日
*/
void Statistics(int [],int n);
int main()
{
    int array[SIZE];
    int i,student;
    printf("小组共用多少名童鞋?");
    scanf("%d",&student);
    for(i=0;i<student;i++)
        do
        {
            printf("输入第%d位童鞋的成绩:",i+1);
            scanf("%d",&array[i]);
        }while(array[i]<0||array[i]>100);
        printf("\n");
    Statistics(array,student);
    return 0;
}
void Statistics(int array[],int n)
{
    int i,j,k,l,m,y;
    int num1=0,num2=0;
    double aver,sum=0.0,sample=0.0;
    int max,min;
    max=array[0];
    min=array[0];
    for(i=0;i<n;i++)
    {
        if(array[i]>max)
           max=array[i];
        if(array[i]<min)
           min=array[i];
        sum+=array[i];
    }
    aver=sum/n;
    printf(" 最高成绩为:%d 最低成绩为:%d 平均成绩为:%.3f\n",max,min,aver);
    for(j=0;j<n;j++)
    {
        if(array[j]==max)
            num1++;
        else if(array[j]==min)
            num2++;
    }
    printf(" 最高成绩有%d名,学号为:",num1);
    for(k=0;k<n;k++)
        if(array[k]==max)
            printf(" %d",k+1);
    printf("\n");

    printf(" 最低成绩有%d名,学号为:",num2);
    for(l=0;l<n;l++)
        if(array[l]==min)
            printf(" %d",l+1);
    printf("\n");

    for(m=0;m<n;m++)
    {
        y=array[m]-aver;
        sample+=y*y;
    }
    printf(" 标准偏差为:%.4f\n",sqrt(sample/(n-1)));
}

输出结果

心得体会

作为一个大学二的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵大笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值