学生信息处理系统 王朝

本文介绍了一个简单的学生成绩统计系统实现方法,该系统能够计算输入成绩的平均值、最高和最低成绩及其出现次数,并计算成绩的标准差。通过几个基本函数的组合使用,实现了对学生群体成绩的有效分析。

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

功能描述:学生成绩处理,计算平均成绩,最高成绩人数最低成绩人数,及标准差。



输入参数:num-学生个数

          score[i]存储成绩


返 回 值:最高成绩,最低成绩,平均值,标准差,最高最低成绩人数,最高成绩学生学号



其他说明:无


#include <stdio.h>
#include <stdlib.h>
#include<math.h>
void input_score(int s[],int n);//输入每个学生成绩的函数
int get_max_score(int s[],int n);//获得最大值的函数
int get_min_score(int s[],int n);//最小值函数
double get_avg_score(int s[],int n);//平均值函数
double get_stdev_score(int s[],int n);//标准差函数
int count(int x,int s[],int n);//统计函数
void output_index(int x,int s[],int n);//统计号码
int main()
{
    int score[50];//定义个数组
    int num;//学生人数
    int max_score,min_score;//最大值最小值
    printf("小组共有多少名同学:");
    scanf("%d",&num);
    input_score(score,num);//输入学生成绩
    max_score=get_max_score(score,num);//最大值赋予最大值函数
    printf("最高成绩:%d,共有%d 人\n",max_score,count(max_score,score,num));
      min_score=get_min_score(score,num);//最小值赋予最小值函数
    printf("最低成绩:%d,共有%d 人\n",max_score,count(min_score,score,num));
    printf("平均成绩:%.2f\n",get_avg_score(score,num));
    printf("标准差成绩:%.2f", get_stdev_score(score,num));
    printf("获最高成绩的学生有:");
    output_index(min_score,score,num);
    printf("\n");
    return 0;
}
void input_score(int s[],int n)//输入学生成绩
{
    int i;
    for(i=0; i<n; i++)
    {
          printf("第%d位同学成绩:",i);
        scanf("%d",&s[i]);
    }

        return ;//空类型不返回
}
int get_max_score(int s[],int n)//里面两个类型分别代表学生成绩数组和学生人数
{
     int i,HighScore=0;
        for(i=0; i<n; i++)//判断最大值
        {
          if(s[i]>=HighScore)
            HighScore=s[i];
        }
        return HighScore;
}
int get_min_score(int s[],int n)//判断最小值
{
         int i,LowScore=100;
       for(i=0; i<n; i++)
       {
         if(s[i]<=LowScore)
            LowScore=s[i];
       }
  return LowScore;
}
double get_avg_score(int s[],int n)//计算平均值
{
  int sum=0,i;//初始化sim
   for(i=0;i<n;i++)
   {
       sum+=s[i];
   }
   return sum/n;
}
double get_stdev_score(int s[], int n)//求方差
{
    int i,sum=0;
    double average,S;
    average=get_avg_score(s,n);//调用函数计算平均值
    for(i=0;i<n;i++)
        sum+=(s[i]-average)*(s[i]-average);
    S=sqrt((sum)/(n-1));
return S;
}
int count(int x, int s[], int n)//计算最高分人数
{
    int count1=0,i;
    for(i=0;i<n;i++)
    {
     if(s[i]==x)
      count1++;
    }
return count1;
}
void output_index(int x, int s[], int n)//最高分学生
{
    int i;
    for(i=0;i<16;i++)
    {
        if(s[i]==x)
            printf("%d ",i);
    }
    return ;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值