二元组整数
题目描述:输入N个整数,输出这个整数两两组合且不重复的所有二元组,要求从小到大输出并且用括号的形式。
输入描述:第一行输入一个整数N,N<=30。第二行输入N个整数。
输出描述:按题意输出。
C语言代码
#include <stdio.h>
void bulletsort(int arr[], int len)
{
int temp;
for (int i = 0; i < len - 1; ++i)
{
for (int j = 0; j < len - 1 - i; ++j)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int n, num[30], lag = 0, pos;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &num[i]);
bulletsort(num, n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i != j) //不输出自己和自己
{
printf("(%d,%d)\n", num[i], num[j]);
while (num[j] == num[j + 1]) j++; //过滤重复的数
}
}
while (num[i] == num[i + 1]) i++; //过滤重复的数
}
return 0;
}
只输出一次相同的数