n<=1000
本题因为最后要输出比平均分高的成绩,所以我们要把之前的所有成绩都保存起来。
保存所有的成绩,用单个变量是不行的,我们用数组(和平时的表格是一样的)来保存这组数。
int a[1001]; //数组中包含了1001个元素,分别是a[0],a[1],...,a[1000],这1001个元素可分别一个int类型值。
注意C++中的数组第一个元素的下标是0,下标要从零开始,元素个数要开够,一般人习惯从1开始存放数据,那么我们要开到1001。
定义起来的包含1001个元素的数组(表格),想存取哪个元素(表格的格子),直接用下标进行定位。
遍历整个(或某段)数组,需要用for循环。
时间限制:1000ms
空间限制:256MByte
#include <iostream>
using namespace std;
int main()
{
int a[10]={0}; //理解成 类型int [10] 变量名称是 a 的一种新的类型
//int [10] 表示10个整型数的集合,称位数组 ,十个数名称分别为a[0],a[1]...a[9] .
// 数组可以定义直接赋值 int a[10] ={1,2,3,4,67},没有赋值的整型赋值为0
//数组的大小不能改变的,所以一般定义的大,够用 比如定义100,但只有了10个是可以的
for(int i=0;i<6;i++)
cin>>a[i]; //通常动态赋值
for(int i=0;i<6;i++)
cout <<a[i]<<" ";
cout<<endl;
cout<<a[1]<<endl; //这个输出第2个元素的值;
cout<<a[5]<<endl; //这个输出第6个元素的值;
cout<<a<<endl; //定义数组是连续的100个整型变量空间,这个a存的是整块空间第一个地址
cout<<&a[0]<<endl; //恰好是a[0]的地址,&a[0];
//为什么要这样子呢?我要访问第5个空间,可以先找到第五个空间的a+5
cout<<a[5]<<endl; //知道第6个同学的地址(住址),只要*加上他的地址,即*(a+5)就等于a[5]
cout<<(a+5)<<endl; //这个是a[5]所在的住址。
cout<<*(a+5)<<endl; //这样做的好处,不用一个一个按次序的找到a[5],只要通过计算就找到a[5];
}
#include <iostream>
using namespace std;
int main()
{
int a[1001];
int n,i,sum;
double b; //平均成绩
sum=0; //和的初始
cin>>n;
for(i=0;i<n;i++)
{ cin>>a[i];
sum=sum+a[i];
}
b=sum*1.0/n; //求平均成绩
printf("%.4lf\n",b);
for(i=0;i<n;i++)
if(a[i]>b) cout<<a[i]<<endl; //输出大于平均成绩的数
return 0;
}