输入N个整数,输出这个整数两两组合且不重复的所有二元组,要求从小到大输出并且用括号的形式。

news2024/11/17 12:35:15
输入描述:
第一行输入一个整数N,N<=30。
第二行输入N个整数。
输出描述:
按题意输出。
输入样例#:   
3
1 2 3
输出样例#:
(1,2)
(1,3)
(2,1)
(2,3)
(3,1)
(3,2)
#include <stdio.h>
 void quicksort(int s[],int min,int max); //快速排序
 int partition(int s[],int min,int max);

int main(){
	int n;
	int s[30];
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&s[i]);
	}
	int same=0;
	int samenum[30]={0};
	for(int i=0;i<n-1;i++)  //找到数组中相同元素的个数-1并记录值
	{
		int flag=0;
		for(int k=0;k<same;k++)
		{
			if(s[i]==samenum[k])
				{
				flag=1;
				break;
			}
		}
		if(flag==1)
			continue;
		for(int j=i+1;j<n;j++)
		{
			if(s[i]==s[j])
			{
				samenum[same]=s[i];
				same++;
			}
		}

	}
	quicksort(s,0,n-1);  //排序
	int num[30*29][2]={0};
	int sum=0;
	for(int i=0;i<n;i++)   //将整个数组两两组合的所有二元组,包括自身,并记录总数
	{
		for(int j=0;j<n;j++)   //以原数组每个数开头为一组,二维数组num中共有n组,每组有n条数据,一条数据(num[0][0],num[0][1])就是一个二元组
		{
			num[i*n+j][0]=s[i];
			num[i*n+j][1]=s[j];
			sum++;
		}
	}
	int del[30*29];
	int sumdel=0;  //需删除总数
	for(int i=0;i<n;i++)
	{
		del[sumdel]=i*n+i;   //记录需删除的自身组合位置
		sumdel++;
		for(int j=0;j<n-1;j++)              //以原数组每个数开头为一组,二维数组num中共有n组,每组有n条数据,一条数据(num[0][0],num[0][1])就是一个二元组
		{
			for(int k=j+1;k<n;k++){
			
				if(num[i*n+j][1]==num[i*n+k][1])   //删除每组中相同的两条数据的第一条(仅记录需删除位置)
				{
					if((i*n+j!=i*n+i)&&(i*n+k!=i*n+i))
					{
						del[sumdel]=i*n+j;   
						sumdel++;
					}
				}
			}
			
		}
	}
	int isdel=0;
	for(int i=0;i<same;i++)   //删除每两组相同数据中的第一组(仅记录需删除位置)
	{
		for(int j=0;j<n;j++)
		{
			if(isdel>=same)
				break;
			if(num[j*n][0]==samenum[isdel])
			{
				for(int k=0;k<n;k++)   //删除一组元素
				{
					del[sumdel]=j*n+k;
					sumdel++;
				}
				isdel++;
			}

		}
	}
	for(int i=0;i<sum;i++)  //输出二元组,遇到需删除位置就跳过不输出
	{
		int flag=0;
		for(int j=0;j<sumdel;j++)
		{
			if(i==del[j])
			{
				flag=1;
				break;
			}
		}
		if(flag==1)
			continue;
		printf("(%d,%d)\n",num[i][0],num[i][1]);
	}
}

void quicksort(int s[],int min,int max) //快速排序
{
	if(min<max)
	{
		int pivotpos=partition(s,min,max);
		quicksort(s,min,pivotpos-1);
		quicksort(s,pivotpos+1,max);
	}
}

int partition(int s[],int min,int max)
{
	int pivot=s[min];
	while(min<max)
	{
		while(min<max&&s[max]>=pivot)
			max--;
		s[min]=s[max];
		while(min<max&&s[min]<=pivot)
			min++;
		s[max]=s[min];
	}
	s[min]=pivot;
	return min;
}

 运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1540849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

那些王道书里的题目-----计算机网络篇

注&#xff1a;仅记录个人认为有启发的题目 p155 34.下列四个地址块中&#xff0c;与地址块 172.16.166.192/26 不重叠&#xff0c;且与172.16.166.192/26聚合后的地址块不会引入多余地址的是&#xff08;&#xff09; A.172.16.166.192/27 B.172.16.166.128/26 …

53 initrd/initramfs 相关

前言 呵呵 这里主要是 探究一下 根文件系统 相关的东西 以及 附加了一些 系统启动的相关信息 计算机启动 硬件重置寄存器 设置初始化数据 计算机访问 0xffff0, 执行 bios 的代码, bios 选择启动设备, 然后执行 启动设备 boolloader 的代码 bootloader 将 boot.img 加载…

玩具蛇(蓝桥杯)

文章目录 玩具蛇题目描述答案&#xff1a;552dfs 玩具蛇 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小蓝有一条玩具蛇&#xff0c;一共有 16 节&#xff0c;上面标着数字 1 至 16。每一节都是一个正方形的形…

GCC制作静态库详解

目录 前言 一.静态动态库区别 二.静态库制作 2.1 库文件命名 三.静态库文件制作 3.1 静态库制作 3.1.1 先获得.o文件 3.1.2 生成静态库文件 3.1.3 删除不必要文件 3.1.4 使用静态库 3.1.5 使用运行运行 前言 带大家快速入门&#xff0c;学会制作静态库。本文详细介绍在Linux系统…

“玩转文本魔法师:Python编程轻松变格式“

Hey小伙伴们&#xff0c;今天我们要一起打造一个文本转换器&#xff0c;就像神奇的魔法棒&#xff0c;能把普通的文字变成各种奇妙的格式&#xff01;想象一下&#xff0c;你的输入是&#xff1a;“Hello, World!”&#xff0c;输出可以是Markdown、HTML或者粗体、斜体的文字&a…

大语言模型(Large Language Model,LLM)简介

1. 什么是大语言模型 它是一种基于深度学习的人工智能模型&#xff0c;它从大量来自书籍、文章、网页和图像等来源的数据中学习&#xff0c;以发现语言模式和规则&#xff0c;如处理和生成自然语言文本。通常&#xff0c;大语言模型含数百亿&#xff08;或更多&#xff09;参数…

外包干了4年,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

GJB5000软件配置管理计划模板

1 范围 1.1 标识 本条应描述本文档所适用的系统和软件的完整标识&#xff0c;适用时&#xff0c;包括其标识号、名称、缩略名、版本号和发布号。 1.2 系统概述 本条应概述本文档所适用的系统和软件的用途。它还应描述软件的一般特性&#xff1b;概述软件开发、运行和维护…

【 Mysql8.0 忘记登录密码 可以试试 】

** Mysql8.0 忘记登录密码 可以试试 ** 2024-3-21 段子手168 1、首先停止 mysql 服务 &#xff0c;WIN R 打开运行&#xff0c;输入 services.msc 回车打开服务&#xff0c;找到 mysql 服务&#xff0c;停止。 然后 WIN R 打开运行&#xff0c;输入 CMD 打开控制台终端输…

深度学习绘制热力图heatmap、使模型具有可解释性

思路 获取想要解释的那一层的特征图&#xff0c;然后根据特征图梯度计算出权重值&#xff0c;加在原图上面。 Demo 加上类激活(cam) 可以看到&#xff0c;cam将模型认为有利于分类的特征标注了出来。 下面以ResNet50为例: Trick: 使用 for i in model._modules.items():可以…

springboot做自定义校验注解

目录 自定义校验注解的实现 注意&#xff1a; 首先&#xff0c;我们需要自定义一个校验注解&#xff1a; 注解含义&#xff1a; Target({ElementType.FIELD}) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy PhoneValidator.class) 校验注解逻辑实现类&a…

数据结构:图的最短路径

目录 一、最短路径的基本概念 二、无权图单源最短路径 三、Dijkstra算法&#xff08;正权图单源&#xff09; 3.1、算法的基本步骤 3.2、算法的实现 3.3、习题思考 3.3.1、网络延迟时间 四、A*算法&#xff08;正权图单源单目标点&#xff09; 4.1、算法的基本概念 4…

阿里必问:Spring源码背后的10大设计奥秘!

如有疑问或者更多的技术分享,欢迎关注我的微信公众号“知其然亦知其所以然”! 各位小米粉丝们,大家好!今天小米要和大家分享的是一个备受关注的话题——“阿里巴巴面试题:Spring源码中的设计模式?”设计模式是软件工程领域中的经典话题,也是技术面试中的常见考点之一。而…

UE5学习日记——Rope Swing 人物与绳索摆动知识准备

rope swing荡绳 比我想的要复杂&#xff0c;目前还没查到简单的做法。本文为查资料的记录&#xff0c;积累后再做一个自己满意的荡绳蓝图。 一、某国外网友的解释 原文 https://forums.unrealengine.com/t/implementing-rope-swing/83098/15 Project Flake - Physics Rope De…

1+x中级题目练习复盘(八)

SQL 语句中进行 group by 分组时&#xff0c;可以不写 where 子句 在使用 select 语句进行查询分组时&#xff0c;如果希望去掉不满足条件的分组&#xff0c;使用 having 子句File 类的 isDirectory() 方法可以判断文件是否为目录 在使用 select 语句进行查询分组时&#xff0…

StarRocks学习笔记

介绍场景建表明细模型聚合模型更新模型主键模型 介绍 StarRocks是一款经过业界检验、现代化&#xff0c;面向多种数据分析场景的、兼容MySQL协议的、高性能分布式关系型分析数据库。 StarRocks充分吸收关系型 OLAP 数据库和分布式存储系统在大数据时代的优秀研究成果&#xff…

【数据结构】链表习题之链表的中间节点和合并两个有序链表

&#x1f451;个人主页&#xff1a;啊Q闻 &#x1f387;收录专栏&#xff1a;《数据结构》 &#x1f389;道阻且长&#xff0c;行则将至 前言 嗨嗨&#xff0c;今天的博客是关于链表的题目&#xff0c;力扣题目之链表的中间节点和合并两个有序链表 一.链表的…

【MySql】1.mysql数据库

一、数据库的基本概念 1.数据 记录事物的信息&#xff1b;按统一的格式进行存储 2.表 数据的集合&#xff0c;行和列的组合&#xff1b;将多条数据组织在一起 3.数据库 表的集合&#xff0c;是存储 相互有关 数据的仓库 二、数据库管理系统 DBMS的主要功能&#xff1a; …

【Unity】UI九宫格

什么是九宫格&#xff1f; 顾名思义&#xff0c;九宫格就是指UI切成9个格子&#xff0c;9个格子可以任意拉伸。 1、3、7、9不拉伸。 2、8水平拉伸。 4、6垂直拉伸。 5既可以水平也可以垂直拉伸。 怎么切九宫格&#xff1f; 选中图片&#xff0c;改成Sprite模式&#xff0c;点…

使用React搭建single-spa

自己搭建的Demo GitHub - ftao123/single-spa-react-demo: single-spa-react-demo 修改子应用的webpack配置 library: "app2"和libraryTarget: "umd"配置必须添加。 可以看到filename在开发环境下的地址是static/js/bundle.js&#xff0c;所以我们主应用…