1个2维或2个1维数组的去重复

C语言 码拜 10年前 (2015-05-11) 894次浏览 0个评论
 

例如数据是2个一维的数组,也可以把这两个并成1个2维数组
data_1[10]={2 1 3 5 2 8 2 8 9 10};
data_2[10]={1 1 1 1 1 1 1 1 1 1};

我想计算 0位置 2 1 这两个在后面(如 1 1 ;3 1 。。。。)的情况没有重复时候 计数+1
结果应该是9 有重复的2 1一次
这要怎么写循环呢,没思路,请教一下

20分
这样可好:

int data_1[10] = { 2, 1, 3, 5, 2, 8, 2, 8, 9, 10 };
int data_2[10] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
int data[9];
int comp(void *a, void *b)
{
	return *(int*)a - *(int*)b;
}
int main(void)
{
	int i, n;
	for (i = 1; i < 10; i++) data[i - 1] = data_1[i] * 10 + data_2[i];
	qsort(data, 9, sizeof(int), comp);

	n = 9;
	for (i = 1; i < 9; i++)
	{
		if (data[i] == data[i-1]) n--;
	}
	printf("%d\n", n);
	return 0;
}
谢谢你的回复,有个问题,为什么data是9 不是10个数么,不过你的思路很好,谢谢

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明1个2维或2个1维数组的去重复
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!