题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include <stdio.h>
#include <string.h>
struct ZD{
char a[10],atoo[10];
int pd;
};
//长度函数
int cd(char n[]){
int i=0;
while(n[i]!=0) i++;
return i;
}
//排序函数
void px(char n[]){
int i,j,t;
t=cd(n);
char k;
for(i=0;i<t-1;i++)
for(j=0;j<t-1-i;j++)
if(n[j]>n[j+1]){
k=n[j];
n[j]=n[j+1];
n[j+1]=k;
}
}
int main() {
//信息全部输入
int n,k,i,j,num=0;
scanf("%d",&n);
struct ZD t[n],temp;
for(i=0;i<n;i++){
scanf("%s",t[i].a);
strcpy(t[i].atoo,t[i].a);
}
char b[10],btoo[10];
scanf("%s",b);
strcpy(btoo,b);
scanf("%d",&k);
//判断是否为兄弟单词
px(btoo);
for(i=0;i<n;i++){
px(t[i].atoo);
}
for(i=0;i<n;i++){
j=0;
if(strcmp(t[i].atoo,btoo)==0&&strcmp(t[i].a,b)!=0){
j=1;num++;}
t[i].pd=j;
}
//输出次数
printf("%d\n",num);
//删除非兄弟单词
for(i=0;i<n;i++){
if(t[i].pd==0){
for(j=i;j<n;j++)
t[j]=t[j+1];
n--;i--;
}}
//对剩余的兄弟单词进行字典排序
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(strcmp(t[j].a,t[j+1].a)>0){
temp=t[j];
t[j]=t[j+1];
t[j+1]=temp;
}
//判断第K个是否存在并输出
if(k<=n)
printf("%s",t[k-1].a);
return 0;
}
