找出两数组中共有的数、求整数序列中出现次数最多的数

找出两数组中共有的数

#include <stdio.h>
void f(int a[], int na, int b[], int nb);
int main()
{
	int Na, Nb, a[25], b[25],i;
	scanf("%d", &Na);
	for (i = 0; i < Na; i++)
	{
		scanf("%d", &a[i]);
	}
	scanf("%d", &Nb);
	for (i = 0; i < Nb; i++)
	{
		scanf("%d", &b[i]);
	}//输入两行数
	f(a, Na, b, Nb);
	f(b, Nb, a, Na);
	return 0;
}
void f(int a[], int na, int b[], int nb)
{
	int i, j, l, m = 0, flag = 0, c[25], d[25], k = 0;
	for (i = 0; i < na; i++)
	{
		flag = 0;
		for (j = 0; j < nb; j++)
		{
			if (a[i] == b[j])
			{
				flag = 1;
				break;
			}
		}
		if (flag == 0)
		{
			c[k] = a[i];
			k++;
		}
	}
	printf("%d", c[0]);
	for (i = 0; i < k; i++)
	{
		for (j = 1; j < k;j++)
		{
			if (c[i] == c[j])
			{
				d[m] = c[j];
				m++;
				j++;
			}
		}
	}
	for (i = 0; i < k; i++)
	{
		printf(" %d", d[i]);
	}
	printf(" ");
}

求整数序列中出现次数最多的数

#include <stdio.h>
int main()
{
	int N, a[10000], i, j, k = 0, b[10000], c[1000] = { 0 }, max;
	scanf("%d", &N);
	for (i = 0; i < N; i++)
	{
		scanf("%d", &a[i]);
	}
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			if (a[i] == a[j])
			{
				b[k] = a[i];
				c[k]++;
			}
		}
		k++;
	}
	max = 0;
	for (i = 1; i < k; i++)
	{
		if (c[i] > c[max])
			max = i;
	}
	printf("%d %d", b[max], c[max]);
	return 0;
}


猜你喜欢

转载自blog.csdn.net/weixin_44017102/article/details/87608381