/*
*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;
}
知識點總結:數組這麼用應該沒問題。
學習心得:不知道說啥好啊……