一.偶数中的降序
1.问题描述
在无序的数列中,找出偶数,并且进行降序排序。
输入样例:
5
3 2 16 1 4
输出样例:
偶数中的降序:16 4 2
2.代码
#include<iostream>
#include<algorithm>
using namespace std;
//降序
bool cmp(int a,int b){
return a>b;
}
//是否为偶数
bool isO(int x){
if(x%2==0){
return true;
}
return false;
}
int main()
{
int arr[100];
int n;
cin>>n;
//存储
for(int i=0;i<n;i++){
cin>>arr[i];
}
//排序
sort(arr,arr+n,cmp);
//遍历
cout<<"偶数中的降序:";
for(int i=0;i<n;i++){
if(isO(arr[i])){
cout<<arr[i]<<" ";
}
}
return 0;
}
二.素数中的升序
1.问题描述
在无序的数列中,对素数进行筛选,且升序。
输入样例:
5
37 2 6 7 17
输出样例:
素数中的升序:2 7 17 37
2.代码
#include<iostream>
#include<algorithm>
using namespace std;
//是否为素数
bool isPrime(int x){
if(x<=1){
return false;
}
for(int i=2;i<x;i++){
if(x%i==0){
return false;
}
}
return true;
}
int main()
{
int arr[100];
int n;
cin>>n;
//存储
for(int i=0;i<n;i++){
cin>>arr[i];
}
//排序
sort(arr,arr+n);
//遍历
cout<<"素数中的升序:";
for(int i=0;i<n;i++){
if(isPrime(arr[i])){
cout<<arr[i]<<" ";
}
}
return 0;
}
三.升降序中的平均数
1.问题描述
输入无顺序的分数,根据分数的平均数进行排序。如果平均数大于等于60分,就升序;如果平均数小于60分,就降序。
输入样例1
5
90 89 99 74 66
输出样例1
平均数:83.6
根据平均数升降序:66 74 89 90 99
输入样例2
5
56 67 23 45 10
输出样例2
平均数:40.2
根据平均数升降序:67 56 45 23 10
2.代码
#include<iostream>
#include<algorithm>
using namespace std;
//降序
bool cmp(int a,int b){
return a>b;
}
int main()
{
int arr[100];
int n;
double sum=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>arr[i];
sum+=arr[i];
}
if((sum/n)>=60){
sort(arr,arr+n);
}
else{
sort(arr,arr+n,cmp);
}
cout<<"平均数:"<<sum/n<<endl;
cout<<"根据平均数升降序:";
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
}
return 0;
}