偶数降序输出 !!急!!

偶数降序输出
给定一个长度为N(不大于500)的正整数序列,请将其中的所有偶数取出,并按降序输出。

时间限制:1000
内存限制:65536
输入
共2行: 第1行为 N; 第2行为 N 个正整数,其间用空格间隔。
输出
降序输出的偶数序列,数之间以空格间隔。数据保证至少有一个偶数。
样例输入
10
1 3 2 6 5 4 9 8 7 10
样例输出
10 8 6 4 2

你把序列扔到数组里。用算法库的sort排序一下就行了。

#include <stdio.h>
#include <algorithm>
using namespace std;
#pragma warning(disable:4996)
bool cmp1(int a, int b)//int为数组数据类型
{
    return a > b;//降序排列
    //return a<b;//默认的升序排列
}
int main() {
    int arrs[1000];
    int n = 0;
    int count = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        int x = 0;
        scanf("%d", &x);
        if (x % 2 == 0) {
            arrs[count++] = x;
        }
    }
    sort(arrs, arrs + count, cmp1);
    for (int i = 0; i < count; i++) {
        printf("%d ", arrs[i]);
    }
}

img


#include "stdio.h"

#include<stdlib.h>


//冒泡排序
void choose(int a[],int n){
    int i,j,temp;
    for(i=1;i<n;i++)
    {
        for(j=n-1;j>=i;j--)
        {
            if(a[j]>a[j-1]){
                temp=a[j];
                a[j]=a[j-1];
                a[j-1]=temp;
            }
        }    
    }    
}
//输出
void output(int a[],int n){
    int i;
    for(i=0;i<n;i++)
        printf("%d\t",a[i]);    
}
void main()
{
    
    int a[1000];
    int b[1000];
    int n;
    int i;
    int index=0;
    printf("请输入N:");
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);    
        if(a[i]%2==0){
            b[index++] = a[i];    
        }
    }
    //冒泡排序
    choose(b,index);
    //输出
    output(b,index);
}

#include <iostream>
using namespace std;
int jishu(int N, int shuzu[500])
{
    int b = 0;
    for (int a = 0; a < N; a++)
        if (shuzu[a] % 2 == 0)
        {
            shuzu[b] = shuzu[a];
            b++;
        }
    return b;
}
void paixu(int N, int shuzu[500])
{
    int b;
    b = jishu(N, shuzu);
    int a, k, j;
    for (a = 0; a < b; a++)
        for (k = a + 1; k < b; k++) //排序
        {
            if (shuzu[a] < shuzu[k])
            {
                j = shuzu[a];
                shuzu[a] = shuzu[k];
                shuzu[k] = j;
            }
        }
    for (a = 0; a < b; a++)
        cout << shuzu[a] << " ";
}
int main()
{
    int N, shuzu[500], a;
    cin >> N;
    for (a = 0; a < N; a++)
        cin >> shuzu[a];
    paixu(N, shuzu);
    return 0;
}

供参考:

#include<stdio.h>
int main()
{
    int a[500],n,in,i,k=0,t;
    scanf("%d",&n);
    while(n--)
    {
         scanf("%d",&in);
         if(in%2==0)
         {
            if(k==0) a[k++] = in;
            else{
                 a[k++] = in;
                 for(i=0;i<k;i++)
                     if(a[k-1] > a[i])
                     {t=a[k-1];a[k-1]=a[i];a[i]=t;}
            }
         }
    }
    for(i=0;i<k;i++)
         printf("%d ",a[i]);
    return 0;
}