题目:
输入一组学生的成绩,以及一个给定区间,输出区间中成绩最高的学生的排名和成绩最低的学生排名。
输入格式:
输入成绩的条数
输入成绩(以空格隔开)
输入要查询成绩的区间【m,n】m,n以空格隔开
输出格式:
输出最高排名和最低排名
输入样例:
10
75 82 67 88 90 56 43 95 70 32
60 90
输出样例:
2 7
#include<iostream>
using namespace std;
int main()
{
cout<<"输入学生成绩的个数:";
int count;
cin>>count;
cout<<"输入学生的成绩:";
int a[50],i,j,t;
for(i=0;i<count;i++)
{
cin>>a[i];
}
for(i=0;i<count-1;i++)
{
for(j=0;j<count-i;j++)
{
if(a[j+1]>a[j])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
cout<<"输入要查询的成绩区间[m,n]:";
int m,n;
cin>>m>>n;
int max,min; //由大到小排序后的下标
//找最高排名
for(min=count-1;min>=0;)
{
if(a[min]<m)
{
min--;
}
else
{
break;
}
}
//找最低排名
for(max=0;max<count;)
{
if(a[max]>n)
{
max++;
}
else
{
break;
}
}
cout<<"最高排名:"<<max+1<<"最低排名:"<<min+1<<endl;
return 0;
}