一、问题及代码
项目3:成绩在数组score中将要存储某小组程序设计的成绩(设有10人),编程实现下列功能:
(1)输入小组人数及成绩,要保证成绩在0-100之间;
(2)输出该小组的最高成绩、最低成绩、平均成绩;
(3)输出考得最高成绩和最低成绩的同学的人数;
(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
(5)(选做)求出所有同学成绩的标准偏差,标准偏差公式为,其中为xi样本(即某同学成绩),x(上带一横)为均值(前面已经求出),N为样本数目;
#include<iostream.h>
#include<math.h>
void main()
{
const int N=10;
int a[N],i,max,min,j=0,k=0,b[N],c[N];
double S=0.0,aver=0.0;
cout<<"请输入成绩:";
for(i=0;i<N;i++)
{
cin>>a[i];
if(a[i]>100||a[i]<0)
cout<<"输入有错"<<endl;
}
max=a[0];
min=a[0];
for(i=0;i<N;i++)
{
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
aver+=a[i];
}
aver/=N;
cout<<"最高分为:"<<max<<"分;最低分为"<<min<<"分;平均分为"<<aver<<"分。"<<endl;
for(i=0;i<N;i++)
{
if(a[i]==max)
{
b[j]=i;
j++;
}
if(a[i]==min)
{
c[k]=i;
k++;
}
}
cout<<"最高分有"<<j<<"个,学号为";
for(i=0;i<j;i++)
cout<<b[i]<<" ";
cout<<endl;
cout<<"最低分有"<<k<<"个,学号为";
for(i=0;i<k;i++)
cout<<c[i]<<" ";
cout<<endl;
for(i=0;i<N;i++)
S+=pow(a[i]-aver,2);
S/=(N-1.0);
S=sqrt(S);
cout<<"标准偏差为"<<S<<endl;
}
项目5:求和
从键盘中输入10个数放入数组a,求a数组中正数和负数的和。
#include<iostream.h>
void main()
{
const int N=10;
int a[N],sum1=0,sum2=0,i;
cout<<"请输入十个整数:";
for(i=0;i<N;i++)
{
cin>>a[i];
if(a[i]>0)
sum1+=a[i];
if(a[i]<0)
sum2+=a[i];
}
cout<<"正数之和为"<<sum1<<endl;
cout<<"负数之和为"<<sum2<<endl;
}