【C++】1399 - 学员的名次?

问题

期末考试语文成绩出来了,老师在课堂上公布了每位同学的语文成绩,小明想查一下自己的成绩在班级能排到第几名。请你编写一个程序,根据给定的所有同学的语文成绩以及小明的语文成绩,计算出小明的排名。(假设所有人成绩都不相等)
在这里插入图片描述

1.分析问题

  1. 已知:所有的语文成绩
  2. 未知:小明第几名
  3. 关系:排序(从大到小)

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;	
}

猜你喜欢

转载自blog.csdn.net/qq_39180358/article/details/135192653
今日推荐