文章
1
粉丝
0
获赞
9
访问
254
这个题的c语言数组实现方法如下。明确1.数字是可以重复的,这样才能取出所有可能的二元组,所以开始的时候生成所有二元组。(只要求(x,y)中x和y不是同一个数据的取值)。
2,将二元组去重,这个方法我采用二元数组标记所有的二元组,题目要求n不超过30,所以用31作为舍弃标记,遇到重复组就标记为31数值。
3,排序,冒泡排序,遇到同x但y不同的组将y的大小排序。
4,打印。
(楼主水平太低了,这个题做了很久才出来就记录下方法,欢迎讨论)
#include <stdio.h>
#include <stdlib.h>
void fun(int x,int y){//打印格式
printf("(%d,%d)\n",x,y);
return ;
}
void fun2(int c[][2], int n) {//去重复二元组;这个题的要求应该说是所有的数字不能去重,先把所有的二元组拿出来,不输出重复的组。
for (int i = 0; i < n; i++) {
// 只有当 c[i][0] != 31 时才检查
if (c[i][0] == 31) continue; // 已经标记为重复的元素跳过
for (int j = i + 1; j < n; j++) {
if (c[j][0] == 31) continue; // 已经标记为重复的元素跳过
// 如果 c[i] ...
登录后发布评论
暂无评论,来抢沙发