输入一个教学班的某门课程的成绩,教学班人数不超过255人,输入课程成绩时,以-100结束输入。写程序完成:
统计输入多少个学生的成绩 。
求全班的平均成绩,并在显示器上输出
对成绩进行排序从高到低排序。
在显示器上输出排序后的结果。
找出学生成绩单中的中位数。并且输出。
收
用循环录入成绩,输入的成绩为-100结束录入
不超过255人,可以定义一个int score[255]的数组
数组+循环语句
统计输入多少个学生的成绩 。
它这里不是要求要统计你输入了多少个学生的成绩,自然和题有关系。
如有帮助,还请帮忙点下采纳!感谢!
题目要求,不能超过255人。所以输入次数范围1-255。
#include<iostream>
using namespace std;
int main()
{
int stu[255],i=0,count,sum=0,temp,mid;
float ave;
cin >> stu[0];
while (stu[i++] != -100)
cin >> stu[i];
count = i - 1;//统计输入数量
for (i = 0; i < count; i++) //求平均值
sum += stu[i];
ave = (double)sum / count; //平均值ave
for(i=0;i<count-1;i++) //冒泡法排序
for (int j = 0; j < count - 1 - i; j++)
if (stu[j] > stu[j+1])
{
temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
for (i = 0; i < count; i++) //输出排序成绩
{
cout << stu[i] << "\t";
if ((i+1) % 5 == 0)
cout << "\n"; //5个一行
}
cout << "\n";
//查找中位数
if (count % 2 == 0) //偶数个成绩数
mid = (stu[count / 2 - 1] + stu[count / 2]) / 2; //中位数=最中间两数的平均值
else
mid = stu[count / 2]; //中位数=最中间数
cout << "输入了" << count << "个学生成绩\n";
cout << "平均成绩:" << ave<<endl;
cout << "中位数:" << mid<<endl;
return 0;
}