题解 | #查找兄弟单词#
查找兄弟单词
http://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include <string.h>
int main()
{
int x,i,j,k,n,num=1,cet=0,y,z;
scanf("%d",&x);
char str[x][12],word[12]={0},str1[x][12],temp[12];
memset(str, '\0', sizeof(str));
memset(str1, '\0', sizeof(str1));
for(i=0;i<x;i++)
{
scanf("%s",&str[i]);
}
scanf("%s",word);
scanf("%d",&z);
for(i=0;i<10;i++)
{
if(word[i]!='\0')
num*=word[i];
else
break;
}
for(j=0;j<x;j++)
{ y=1;
for(k=0;k<i;k++)
{
y*=str[j][k];
}
if(y==num&&str[j][i]=='\0')
{
strcpy(str1[cet++], str[j]);
}
}
y=cet;
for(j=0;j<y;j++)
{
if(strstr(str1[j],word)!=NULL)
{cet--;
str1[j][0]='~';
}
}
printf("%d\n",cet);
if(cet>=z)
{for(j=0;j<y;j++)
{
for(k=j;k<y;k++)
{
for(n=0;n<i;n++)
{
if(str1[j][n]<str1[k][n])
break;
if(str1[j][n]>str1[k][n])
{
strcpy(temp,str1[j]);
strcpy(str1[j],str1[k]);
strcpy(str1[k],temp);
break;
}
}
}
}
printf("%s\n",str1[z-1]);
}
}