第十三週項目2 成績統計

/*
*Copyright (c)2014,煙臺大學計算機與控制工程學院
*All rights reserved.
*文件名稱:test.cpp
*作    者:anGelovEr 王坤
*完成日期: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;  //輸入錯誤後要重新輸入
    }
    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;
}

知識點總結:數組這麼用應該沒問題。

學習心得:不知道說啥好啊……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章