我正在参加一场锦标赛,但我遇到了字符串排序问题。这里我试着解释一下情况:
“一个人发现了一本用未知语言写成的大书,它使用了与英语相同的字符。这本书包含一个简短的索引,但索引中项目的顺序与如果字符被排序的话人们所期望的不同和英文字母表一样。收集者试图用索引来确定奇怪字母表的字符顺序(即整理顺序),然后他开始了这项工作”
当然,我必须制作一个可以帮助那个人的程序。作为输入,我必须向用户询问字母的顺序(我已经解决了这个问题)。每个字符串最多包含 20 个字符。并非所有字母都必须使用,但该列表将暗示使用的字母之间的完整顺序。
我写了这段代码:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main(void){
int i,c,j,p=0,k=0;
printf("How many strings do you need? \n");
scanf("%d", &c); //number of columns for the matrix
// input
char a[20][c];
for(i=0;i<c;i++){
printf(" ----- String number %d -----\n",i+1);
for(j=0;j<20;j++){
scanf("%c", &a[j][c]);
if (a[j][c]==' ')
{break;}
}
}
//output
printf(" \n");
printf(" ----- Results ----- \n");
printf("%c", a[0][0]);
for(p=1;p<c;p++)
{
if(a[k][p]=!a[k][p-1])
{printf("%c", a[k][p]);}
}
getch();
return 0;
}
我在最后一个循环中有问题,因为它没有给我正确的输出。如果用户键入(例如):
XWY ZX ZXY ZXW YWWX
我的输出应该是“XZYW”。有人有什么建议吗?