13周课后自主-项目2-(1)成绩处理

/*
 *Copyright (c) 2014,烟台大学计算机学院
 *All right reserved.
 *文件名称:main.cpp
 *作    者:臧云吉
 *完成时间:2014年11月24日
 *版 本 号:v1.0
 *问题描述:成绩处理
 *输入描述:人数及成绩
 *程序输出:输出处理结果
 */
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int score[50];
    int num,i;
    cout<<"一共有学生:";
    cin>>num;
    cout<<"请输入学生成绩:"<<endl;
    for(int i1=0;i1<num;i1++)
    {
        int temp;
        cout<<"输入第"<<i1<<"位同学的成绩:";
        cin>>temp;
        if(temp<0 || temp>100)
        {
            while(temp<0||temp>100)
            {
            cout<<"输入第"<<i1<<"位同学的成绩:";
            cin>>temp;
            }

        }
        score[i1]=temp;
    }
    int max=0,min=100;
    double sum=0.0,average=0;
    计算最大值最小值平均值并计算
    for(int i2=0;i2<num;i2++)
    {
        if(score[i2]<min)
        {
            min=score[i2];
        }
        if(score[i2]>max)
        {
            max=score[i2];
        }
        sum+=score[i2];
    }
    average=sum/num;
    cout<<"最高成绩为:"<<max<<",最低成绩为:"<<min<<",平均成绩为:"<<average;
    求出并输出考得最高成绩和最低成绩的人数以及学号
    int max_mark[50]={0},max_total=0;
    int min_mark[50]={0},min_total=0;
    int i4=0,i5=0;
    for(int i3=0;i3<num;i3++)
    {
        if(score[i3]==max)
        {
            max_total++;
            max_mark[i4]=i3;
            i4++;
        }
        if(score[i3]==min)
        {
            min_total++;
            min_mark[i5]=i3;
            i5++;
        }
    }
    cout<<endl;
    cout<<"取得最高成绩的共"<<max_total<<"人,他们的学号是:";
    for(int j1=0;j1<max_total;j1++)
    {
        cout<<max_mark[j1]<<" ";
    }
    cout<<endl;
    cout<<"取得最低成绩的共"<<min_total<<"人,他们的学号是:";
    for(int j2=0;j2<min_total;j2++)
    {
        cout<<min_mark[j2]<<" ";
    }
    cout<<endl;
    求出并输出标准差
    double s=0,sum2=0;
    for(int i6=0;i6<num;i6++)
    {
        sum2+=pow((score[i6]-average),2);
    }
    s=sqrt(sum2/(num-1));
    cout<<"标准偏差为:"<<s<<endl;
	return 0;
}


运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值