过了,求大佬看下可以优化嘛
查看原帖
过了,求大佬看下可以优化嘛
936389
mioter楼主2023/2/2 17:04

代码如下,有可以优化的地方吗 我觉得有些地方重复了却不知道怎么改,求助一下

#include <stdio.h>
#define NUM 101

int main(){
    int N = 0;
    int tab[NUM] = {0};
    int out[NUM] = {0};
    int num = 0;
    scanf("%d",&N);

    //输入兼重复数标记
    for (int i = 0; i < N; i++){
        scanf("%d",&tab[i]);
        for (int a = 0; a < i; a++){
            if ( tab[i] == tab[a] ){
                tab[i] = 0;
            }
        }
    }

    //去重兼升序排序
    int b = N + 1;
    out[b] = 1001;
    int max = 0;
    for (; b >= 0; b--){
        max = 0;
        for (int i = 0; i < N; i++){
            if (tab[i] > 0) {
                if ( tab[i] > max && tab[i] < out[b] ){
                    max = tab[i];
                }
            }
        }
        out[b-1] = max;
        // for (int i = 0; i <= N; i++){
        //     printf("out[%d] = %d\t",i,out[i]);
        //}
    }

    //输出
    for (int i = 1; i <= N; i++){
        if ( out[i] == 0 ) continue;
        num++;
    }
    printf("%d\n",num);
    for (int i = 1; i <= N; i++){
        if ( out[i] == 0 ) continue;
        printf("%d ",out[i]);
    }

    return 0;
}
2023/2/2 17:04
加载中...