编写一c语言程序,输入两个字符串,若有相同字母,输出相同交集,没有,则输出没有交集,求大神编写程序
我的编写:#include<stdio.h>#include<string.h>intmian(){charstr1[8],str2[8];inti,j,f=0;gets...
我的编写:#include<stdio.h>
#include<string.h>
int mian()
{
char str1[8],str2[8];
int i,j,f=0;
gets(str1);
gets(str2);
for(i=0;i<8;i++)
for(j=0;j<8;j++)
if(str1[i]==str2[j])
{
f=1;
printf("%c",str1[i]);
}
if(f==0)
printf("\nthere is no 交集\n");
return 0;
}
补充:我这种编程后有点简单,而且如果没有交集的,输出不了 求大神编写更好的活着修正。 展开
#include<string.h>
int mian()
{
char str1[8],str2[8];
int i,j,f=0;
gets(str1);
gets(str2);
for(i=0;i<8;i++)
for(j=0;j<8;j++)
if(str1[i]==str2[j])
{
f=1;
printf("%c",str1[i]);
}
if(f==0)
printf("\nthere is no 交集\n");
return 0;
}
补充:我这种编程后有点简单,而且如果没有交集的,输出不了 求大神编写更好的活着修正。 展开
2个回答
展开全部
#include<stdio.h>
#include<string.h>
int main()
{
char str1[8],str2[8];
int i,j,f=0;
gets(str1);
gets(str2);
for(i=0;i<strlen(str1);i++)
for(j=0;j<strlen(str2);j++)
if(str1[i]==str2[j])
{
f=1;
printf("%c",str1[i]);
}
if(f==0)
printf("\nthere is no 交集\n");
return 0;
}
在你代码上改了几个地方,看不懂再问吧,我就不解释啦
追答
#include<stdio.h>
#include<string.h>
#define N 30
int main()
{
char str1[N],str2[N],str3[N];
int i,j,k,t=0,f=0;
gets(str1);
gets(str2);
for(i=0;str1[i]!='\0';i++)
{
for(j=0;str2[j]!='\0';j++)
if(str1[i]==str2[j])
{
f=1;
for(k=0;k<=t;k++)
{
if(str3[k]==str1[i])
break;
}
if(k>t)
{
str3[t]=str1[i];
t++;
break;
}
}
}
if(f==0)
printf("\nthere is no 交集\n");
else
{
for(i=0;i<t;i++)
printf("%c ",str3[i]);
printf("\n");
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询