一 问题及代码:
/*
* 文件名称:成绩
* 作 者:徐永栋
* 完成日期:2017 年5月5日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述: 输入小组成绩
* 问题描述:略
* 程序输出:输出该小组的最高成绩、最低成绩、平均成绩,考得最高成绩最低成绩的同学的人数,输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
* 问题分析:无
* 算法设计:无
*/
#include<iostream>
using namespace std;
int main()
{
double a[10],sum,max,min,x;
int i,b(0),n(0),m(0),c(0),d(0),smax[10],smin[10];
cout<<"小组人数:10"<<endl;
cout<<"成绩:"<<endl;
while(b!=10)
{
cin>>x;
if(x<0||x>100)continue;
a[b]=x;
b++;
}
if(b==10)
{
sum=a[0];
max=min=a[0];
for(i=1;i<10;i++)
{
sum+=a[i];
if(a[i]>max)max=a[i];
if(a[i]<min)min=a[i];
}
for(i=0;i<10;i++)
{
if(a[i]==max){smax[n]=i;n++;}
if(a[i]==min){smin[m]=i;m++;}
}
cout<<"该小组的最高成绩:"<<max<<","<<"最低成绩:"<<min<<","<<"平均成绩:"<<sum/10<<endl;
cout<<"考得最高成绩的同学的人数:"<<n<<","<<"最低成绩的同学的人数:"<<m<<endl;
cout<<"考得最高成绩绩的同学的学号:";
for(i=0;i<n;i++)
cout<<smax[i]<<" ";
cout<<",最低成绩的同学的学号:";
for(i=0;i<m;i++)
cout<<smin[i]<<" ";
cout<<endl;
}
else
cout<<"error";
return 0;
}
二 运行结果:
三 心得体会:
这次的程序较长,弄错了好几次,在老师的帮助下一一改正,我要继续努力。
四 知识点总结:
1.一维数组的一般格式为:
类型标识符 数组名[常量表达式];
例如:
int a[10];
它表示数组名为a,此数组为整型,有10个元素。
关于一维数组的几点说明:
1) 数组名定名规则和变量名相同,遵循标识符定名规则。
2) 用方括号括起来的常量表达式表示下标值。
3) 常量表达式的值表示元素的个数,即数组长度。
4) 常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。