求助(试过几个样例都可以过,但是最后没有过
查看原帖
求助(试过几个样例都可以过,但是最后没有过
1085020
Roadinforest楼主2023/9/10 13:51
#include<iostream>
using namespace std;
int main() {
	int* array;
	int all;
	cin >> all;
	int sa = all;
	//创建数组
	array = new int[all];

	//获得输入
	for (int i = 0; i < all; i++) {
		cin >> array[i];
	}
/*	for (int i = 0; i < all; i++) {
		cout << array[i] << " ";
	}
	cout << "initial\n";*/

	//遍历,并将重复的标记为0
	int save = array[0];

	for (int j = 0; j < all; j++) {
		for (int k = j + 1; k < all; k++) {
			if (array[k] == array[j]) {
				array[j] = 0;
				all--;
			}
		}
	}
/*	for (int i = 0; i < sa; i++) {
		cout<< array[i]<<" ";
	}
	cout << "final "<<all<<endl;*/

	//创建一个新数组(未排序,但去重)
	int* noch;
	noch = new int[all];
	int ti=0;
	for (int i = 0; i < sa; i++) {
		if (array[i] != 0) {
			noch[ti] = array[i];
			ti++;
		}
	}
/*	for (int i = 0; i < all; i++) {
		cout << noch[i] << " ";
	}
	cout << "copy"<<endl;*/

	//进行一个升序排列
	int cmp,yu;
	int which=0;
	for (int i = 0; i < all-1; i++) {
		yu=cmp = noch[i];
		for (int j = i + 1; j < all; j++) {
			if (cmp > noch[j]) {
				cmp = noch[j]; which = j;
			}
		}
		if (which != i) {
			noch[i] = cmp;
			noch[which] = yu;
		}

/*		for (int i = 0; i < all; i++) {
			cout << noch[i] << " ";
		}
		cout << "change"<<i<<endl;*/
	}
	cout << all << endl;
	for (int i = 0; i < all; i++) {
		cout << noch[i] << " ";
	}
//	cout << "final result";
}
2023/9/10 13:51
加载中...