编程,从键盘分别输入两个都不多于20个元素的
字符集合a和b,计算并输出集合a和b 的交集和并
集,其中的元素从小到大排列,若交集为空则输
出NULL。例如,
输入:1a2b3c4d5@6$7& /* 集合a */
0abc9!@#x246 /* 集合b */
输出:246@abc /* 交集 */
!#$&012345679@abcdx /* 并集 */
输入:54321 /* 集合a */
zxycba /* 集合b */
输出:NULL /* 交集 */
12345abcxyz /* 并集 */
能补完吗。
追答char s1[20],s2[20];
后加入
scanf("%s",s1);
scanf("%s",s1);
就行了
在下是C语言新手,麻烦一下把完整格式写一遍,这个程序编译错误啊。谢谢了,我加分。
追答#include
#include
void main()
{
int i,count=0,ch1[256]={0},ch2[256]={0};
char s1[20],s2[20];
gets(s1);
gets(s2);
//统计字符串1的字符情况
for(i=0;i0&&ch2[i]>0)
{
putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
//并集
count=0;
for(i=0;i0||ch2[i]>0)
{
putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
getchar();
}
原来这里有点错误://统计字符串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])++;
那天直接打上去的,没有运行过,
不好意思.