代码如下,有可以优化的地方吗 我觉得有些地方重复了却不知道怎么改,求助一下
#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;
}