问题
期末考试语文成绩出来了,老师在课堂上公布了每位同学的语文成绩,小明想查一下自己的成绩在班级能排到第几名。请你编写一个程序,根据给定的所有同学的语文成绩以及小明的语文成绩,计算出小明的排名。(假设所有人成绩都不相等)
1.分析问题
- 已知:所有的语文成绩
- 未知:小明第几名
- 关系:排序(从大到小)
2.定义变量
sub:小明第几名(数组下标,实际输出时需要加1)
//二、数据定义
int n,a[100],x,sub;
3.输入数据
//三、数据输入
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
cin>>x;
4.数据计算
冒泡排序。
//四、数据计算
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(a[j]<a[j+1]){
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
5.输出结果
将小明成绩与排序后的成绩进行对比,找到sub即可。
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:所有的语文成绩
//未知:小明第几名
//关系:排序(从大到小)
//二、数据定义
int n,a[100],x,sub;
//三、数据输入
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
cin>>x;
//四、数据计算
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(a[j]<a[j+1]){
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//五、输出结果
for(int i=0;i<n;i++){
if(x==a[i]){
sub=i;
break;
}
}
cout<<sub+1;
return 0;
}