第13周项目2成绩处理

问题及代码:

<pre class="cpp" name="code">/* 
*Copyright (c)2014,烟台大学计算机与控制工程学院 
*All rights reserved. 
*文件名称:grade.cpp 
*作    者:单昕昕 
*完成日期:2014年11月23日 
*版 本 号:v1.0 
* 
*问题描述:保存成绩的数组。
*程序输出:输出最高成绩、最低成绩和平均成绩,考得最高成绩和最低成绩人数以及学号,标准偏差。
*/  
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int score[50]; //保存成绩的数组,不会超过50名
    int num,i=1,j,s,high=-1,low=101,sum=0,highc=0,lowc=0;   
    double ave;//令i=1,是为了输出时显示第一个为第“一”位同学的成绩。
    cout<<"小组共有多少名同学?"<<endl;
    cin>>num;
    cout<<"请输入学生成绩:"<<endl;
    while(i<=num) //输入num名同学的成绩
    {
        cout<<"请输入第"<<i<<"位同学的成绩:";
        cin>>s;
        if(s>=0&&s<=100)  //成绩范围为0-100
        {
            score[i]=s;
            sum+=s;  //计算总和
            if(s>high)  //比较最高分最低分
                high=s;
            if(s<low)
                low=s;
            ++i;
        }
        else
            cout<<"请检查数据并重新输入学生成绩(0-100):"<<endl;  //输入错误后要重新输入
        continue;
    }
    ave=sum/num;
    cout<<"最高成绩为:"<<high<<"分;"<<"最低成绩为:"<<low<<"分;"<<"平均成绩为:"<<ave<<"分。"<<endl;
    for(j=1; j<=num; j++) //求出并输出考得最高成绩和最低成绩人数
    {
        if(score[j]==high)
            highc++;
        if(score[j]==low)
            lowc++;
    }
    cout<<"取得最高成绩"<<high<<"的共有"<<highc<<"人,他们的学号为:";
    for(j=1; j<=num; j++)  //再次筛选出考得最高成绩和最低成绩的学号
    {
        if(high==score[j])
            cout<<j<<" ";
    }
    cout<<endl;
    cout<<"取得最低成绩"<<low<<"的共有"<<lowc<<"人,他们的学号为:";
    for(j=1; j<=num; j++)
    {       
            if(low==score[j])
            cout<<j<<" ";
    }
    cout<<endl;
    double m=0;
    int x,y; 
    for(j=1; j<=num; j++)
    {
        x=score[j]-ave;
        y=x*x;
        m+=y;
    }
    cout<<"标准偏差为:"<<sqrt(m/(num-1))<<endl;
    return 0;
}


 
 

运行结果:

 

知识点总结:

运用数组,输出最高成绩、最低成绩和平均成绩,考得最高成绩和最低成绩人数以及学号,标准偏差。

 

学习心得:

感觉很像之前写过的大奖赛计分系统,不过这里用的是数组的知识。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值