C语言求两个字符集合的交集和并集
编程,从键盘分别输入两个都不多于20个元素的字符集合a和b,计算并输出集合a和b的交集和并集,其中的元素从小到大排列,若交集为空则输出NULL。例如,输入:1a2b3c4...
编程,从键盘分别输入两个都不多于20个元素的
字符集合a和b,计算并输出集合a和b 的交集和并
集,其中的元素从小到大排列,若交集为空则输
出NULL。例如,
输入:1a2b3c4d5@6$7& /* 集合a */
0abc9!@#x246 /* 集合b */
输出:246@abc /* 交集 */
!#$&012345679@abcdx /* 并集 */
输入:54321 /* 集合a */
zxycba /* 集合b */
输出:NULL /* 交集 */
12345abcxyz /* 并集 */ 展开
字符集合a和b,计算并输出集合a和b 的交集和并
集,其中的元素从小到大排列,若交集为空则输
出NULL。例如,
输入:1a2b3c4d5@6$7& /* 集合a */
0abc9!@#x246 /* 集合b */
输出:246@abc /* 交集 */
!#$&012345679@abcdx /* 并集 */
输入:54321 /* 集合a */
zxycba /* 集合b */
输出:NULL /* 交集 */
12345abcxyz /* 并集 */ 展开
展开全部
int i,count=0,ch1[256]={0},ch2[256]={0};
char s1[20],s2[20];
//统计字符串1的字符情况
for(i=0;i<20&&s1[i]!='\0';i++)
ch1(s1[i])++;
//统计字符串2的字符情况
for(i=0;i<20&&s2[i]!='\0';i++)
ch2(s2[i])++;
//交集
for(i=0;i<256;i++)
if(ch1[i]>0&&ch2[i]>0)
{
putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
//并集
count=0;
for(i=0;i<256;i++)
if(ch1[i]>0&||ch2[i]>0)
{
putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
char s1[20],s2[20];
//统计字符串1的字符情况
for(i=0;i<20&&s1[i]!='\0';i++)
ch1(s1[i])++;
//统计字符串2的字符情况
for(i=0;i<20&&s2[i]!='\0';i++)
ch2(s2[i])++;
//交集
for(i=0;i<256;i++)
if(ch1[i]>0&&ch2[i]>0)
{
putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
//并集
count=0;
for(i=0;i<256;i++)
if(ch1[i]>0&||ch2[i]>0)
{
putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
更多追问追答
追问
能补完吗。
追答
char s1[20],s2[20];
后加入
scanf("%s",s1);
scanf("%s",s1);
就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询