题目很绕,看懂题目给出的测试用例不难,但是注意细节就不是那么简单的事情了,特别是这类字符串处理的题目。注意题目里面有一个隐藏的问题,如果是出现多个相同的单词怎么办?
应该是这样的效果:
下面出AC的代码:
#include<stdio.h>
#include<string.h>
char lastWord[100],nowWord[100];
int main()
{
freopen("in.txt", "r", stdin);
int spaceNum=0,SameNum=0;
int i;
scanf("%s",lastWord);
printf("%s\n",lastWord);
while(scanf("%s",nowWord)!=EOF)
{
for(i=0;i<strlen(lastWord) && i<strlen(nowWord);i++)
{
if(lastWord[i]!=nowWord[i])
break;
}
//printf("i == %d\n",i);
if (i>SameNum)
spaceNum++;
else
spaceNum=i;
SameNum=spaceNum;
for(i=0;i<spaceNum;i++)
putchar(' ');
printf("%s\n",nowWord);
strcpy(lastWord,nowWord);
}
return 0;
}