求助,用案例不知道为什么最后只输出一个0
查看原帖
求助,用案例不知道为什么最后只输出一个0
918152
yizhidashayu楼主2023/7/19 20:17
#include <bits/stdc++.h>

using namespace std;

const int MAX = 1000+10;
int an[MAX],en[MAX];


int main(){
	memset(an,0,sizeof(an));
    memset(en,0,sizeof(en));
	int n;
    cin >> n;
    
    for(int i = 0; i < n; i++){
    	cin >> an[i];
	}
	
	
	
	
	int y = 0,m = n;
	sort(an,an+n);//注释掉这行就正常了
    //排序
	
	for(int i = 0; i < n; i++){
		int t = lower_bound(an,an+n,an[i]) - an;
        //返回第一个大于等于数的下标
		if(an[i] == an[t]){
        //判断如果等于那个数为0
			an[t] = 0;
			m--;
		}
		if(an[i]){en[y] = an[i]; y++;} 
        //当那数不是0存入另一个数组
	}
	sort(en,en+m);//排序
	cout << m << endl;
	
	for(int i = 0; i < m; i++){
		cout << en[i] << ' ';
	}
	
    return 0;
}
2023/7/19 20:17
加载中...