一、 删除字符串的重复字符 输入:addgffa 输出:adgf
思路:从字符串的第一个元素开始一次往后对比,如果有重复的元素,就把这个位置往后的数组,一次往前移动一个。
代码如下:
#include <iostream>
using namespace std;
int main()
{
char a[20];
cout << "请输入字符串" << endl;
cin >> a;
for (int i = 0; a[i] != '\0'; i++)
{
for (int j = i + 1; a[j] != '\0'; j++)
if (a[i] == a[j])
{
for (int k = j; a[k] != '\0'; k++)
{
a[k] = a[k + 1];
}
}
}
puts(a);
system("pause");
return 1;
}
二、求集合的并集 【问题描述】输入两个数组的元素值,每个数组的元素值是整数,将每个数组看作一个集合(不重复,每个数组元素值最多50个),输出两个集合的并集。
int main()
{
int a[50], b[50];//定义两个数组
int i, j;
int length_a, length_b;//定义数组长度变量
//输入a数组
scanf("%d",&length_a);
for (i = 0; i < length_a; i++)
{
scanf("%d", &a[i]);
}
//输入b数组
scanf("%d", &length_b);
for (i = 0; i < length_b; i++)
{
scanf("%d", &b[i]);
}
//输出a数组
for ( i = 0; i < length_a; i++)
{
printf("%d ",a[i]);
}
for ( i = 0; i < length_b; i++)
{
for (j = 0; j < length_a; j++)
{
if (b[i] == a[j])
break;
}
if (j == length_a)
printf("%d ", b[i]);
}
return 0;
}