计算机考研复试上机02
目录
3、排序
1)排序(华中科技大学复试上机题)
2)成绩排序(清华大学复试上机题)
3)特殊排序(华中科技大学复试上机题)
4)整数奇偶排序(北京大学复试上机题)
5)小白鼠排队(北京大学复试上机题)
4、查找
1)找 x(哈尔滨工业大学复试上机题)
2)查找(北京邮电大学复试上机题)
3)找最小数(北京邮电大学复试上机题)
4)打印极值点下标(北京大学复试上机题)
5)找位置(华中科技大学复试上机题)
6) 寻找重复数,Leetcode.287
7)爱吃香蕉的珂珂,Leetcode.875
3、排序
1)排序(华中科技大学复试上机题)
题目描述:
对输入的 n 个数进行排序并输出。
输入:
输入的第一行包括一个整数 n(1 <= n <= 100)。接下来的一行包括 n 个整数。
#include <bits/stdc++.h>
using namespace std;
bool cmp(int x,int y){
return x < y;
}
int main(){
int arr[101],n;
cin>>n;
for(int i = 0;i < n;i++){
cin>>arr[i];
}
sort(arr,arr+n,cmp);
for(int i = 0;i < n;i++){
cout<<arr[i]<<" ";
}
return 0;
}
2)成绩排序(清华大学复试上机题)
题目描述:
用一维数组存储学号和成绩,然后按成绩排序输出。
输入描述:
输入的第一行中包括一个整数 N(1 <= N <= 100),它代表学生的个数。接下来的 N 行中,每行包括两个整数 p 和 q,分别代表每个学生的学号和成绩。
输出描述:
按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,那么按照学号的大小从小到大排序。
#include <bits/stdc++.h>
using namespace std;
struct student{
int no;
int score;
};
bool cmp(struct student s1, struct student s2){
if(s1.score == s2.score)
return s1.no < s2.no;
else
return s1.score < s2.score;
}
int main(){
struct student ss[101];
int n;
cin>>n;
for(int i = 0;i < n;i++){
cin>>ss[i].no>>ss[i].score;
}
sort(ss,ss+n,cmp);
for(int i = 0;i < n;i++){
cout<<ss[i].no<<" "<<ss[i].score<<endl;
}
return 0;
}
3)特殊排序(华中科技大学复试上机题)
题目描述:
输入一系列整数,将其中最大的数挑出(有多个最大数时,挑出一个即可),并对剩下的数排序,如果无剩下的数,那么输出-1。
#include <bits/stdc++.h>
using namespace std;
int main(){
int arr[1001],n;
cin>>n;
for(int i = 0;i < n;i++){
cin>>arr[i];
}
sort(arr,arr+n);
int m = arr[n-1];
cout<<m<<endl;
if(arr[0] == m)
cout<<-1<<endl;
else{
for(int j = 0;j < n-1;j++)
cout<<arr[j]<<" ";
}
return 0;
}
4)整数奇偶排序(北京大学复试上机题)
题目描述:
输入 10 个整数,彼此以空格分隔。重新排序后输出(也按空格分隔),要求: 1)首先输出其中的奇数,并且按照从大到小的顺序排列;2)然后输出其中的偶数,并且按照从小到大的顺序排列。
#include <bits/stdc++.h>
using namespace std;
int main(){
int arr[11];
for(int i = 0;i < 10;i++){
cin>>arr[i];
}