OJ题 期末成绩

题目描述

      又到学期末,小明迎来了又一次的期末考试。虽然每学期都要考试,但是这次期末考试对小明来说意义重大。因为小明爱慕已久的女神说,如果小明这次考了全班前三名就做他女朋友。虽说小明没有十足的信心,但是女神的话不能不听啊。
考完试后,小明拿到了全班的成绩单,这张成绩单是按学号顺序排好的。小明很想知道班里到底有多少人分数比他高,现在就请你帮帮他,帮他数一下到底有多少人的分数比他高吧。

 

输入

      输入数据的第一行是一个正整数T,表示测试数据的组数,接下来有T组测试数据。
每组数据包括两行。
第一行有两个正整数N,K(0<N<1000,0<K<=N),分别表示成绩单上总共的学生数目,和小明的学号。
第二行有N个整数Xi(0<=Xi<=100)分别表示各个学生的成绩,以学号递增顺序给出,第一个学生学号为1。

 

输出

对于每组数据,请在一行里输出班里一共有多少个学生成绩高于小明。

 

样例输入

1
3 2
81 72 63

 

样例输出

1

代码块

import java.util.Scanner;

import org.omg.PortableInterceptor.IORInterceptor;

public class qimochenji {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int T=scanner.nextInt();
		for(int i=0;i<T;i++){
			int N=scanner.nextInt();
			int K=scanner.nextInt();
			int num=0;
			int[] arr=new int[N];
			for(int k=0;k<N;k++){
				arr[k]=scanner.nextInt();
			}
			for(int j=0;j<N;j++){
				if(arr[j]>arr[K-1]){
					num++;
				}
			}
			System.out.println(num);	
		}
	}
}

解题思路:主要注意一点,如果直接用arr[k](小明的成绩)去和装在数组中的其他人的成绩比较,在一种条件下,小明的学号是最后一个的话,数组就会越界,运行时会出错。

### 山东科技大学OJ在线Judge系统期末考试目 山东师范大学的学生在大一下学期接触到了学校的Online Judge (OJ) 系统,并参与了 ACM 编程竞赛活动[^2]。虽然提到的是山东师范大学的情况,但不同高校之间的 OJ 系统功能相似,通常用于支持课程教学、编程练习以及各类编程竞赛。 对于山东科技大学的 Online Judge 系统,这类平台一般提供多种类型的编程目供学生练习和测试。然而具体的期末考试目属于内部资源,受版权保护且具有时效性和保密性,因此无法直接获取或展示这些具体目。不过可以描述该类平台上常见的型结构: #### 常见型分类 1. **基础算法** - 排序算法实现(如快速排序) ```python def quick_sort(arr): if len(arr) <= 1: return arr else: pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right) ``` 2. **数据结构操作** - 单链表反转 ```cpp ListNode* reverseList(ListNode* head) { ListNode *prev = nullptr, *curr = head; while(curr != nullptr){ ListNode* nextTemp = curr->next; curr->next = prev; prev = curr; curr = nextTemp; } return prev; } ``` 3. **动态规划问** - 背包问求解 4. **图论应用** - 最短路径计算(Dijkstra/Floyd-Warshall) 为了准备类似的考试,建议访问山东科技大学官方提供的 OJ 平台进行日常训练并关注教师发布的公告以获得最新的试信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值