文章

17

粉丝

148

获赞

3

访问

173.7k

头像
二元组整合问题,通过率66,不知道哪里有问题,求指点
学习交流
发布于2020年2月5日 12:30
阅读数 10.1k

题目链接

#include <iostream>
using namespace std;
int num[30];
bool temp[1000]={false};

//快排
void quick(int start,int end){
	if(start >= end) return;

	int i=start,j=end,base=num[start],temp;
	while(i<j){
		while(num[j]>=base && i<j) j--; 
		while(num[i]<=base && i<j) i++;
		if(i<j){
			temp=num[i];
			num[i]=num[j];
			num[j]=temp;
		}
	}
	num[start]=num[i];
	num[i]=base;
	quick(start,i-1);
	quick(i+1,end);
}


int main(void){
	int N;

	cin >> N;
	for(int i=0;i<N;i++){
		int Tnum;
		cin >> Tnum;
		


		//如果输入的以前输入过,那么过滤掉,并统计最后有效不重复数据有几个
		if(!temp[Tnum]) {
			num[i]=Tnum;
			temp[Tnum]=true;
		}else{
			N--;
			i--;
		}
	}

	//排序
	quick(0,N-1);

	//有数数据只有一个和多个两种情况
	//只有一个时输出两个,例如(6,6)
	if(N!=1){
		for(int i=0;i<N;i++){
			for(int j=0;j<N;j++){
				if(j==i) continue;
				cout << "(" << num[i] << "," << num[j] << ")" << endl;
		...
登录查看完整内容


登录后发布评论

3 条评论
admin SVIP
2020年2月5日 17:26

建议和正确代码比较一下,看是哪些数据出问题

赞(0)
admin SVIP
2020年2月5日 17:24

这个代码实现的也太复杂了吧。。不是两个for就完成的事嘛

赞(0)

谦虚使人进步 : 回复 admin: 这是一个排序,但我用了多种方法实现

2020年3月9日 21:14