#include<stdio.h>
int main()
{
int i=0;
char word[80][80];
while((getchar())!='\n')
{
scanf("%s",word[i]);
i++;
}
while(--i)
{
printf("%s ",word[i]);
}
printf("%s",word[0]);
return 0;
}
为什么我这样输出的第一个字符串的第一个字母消失了呀,谢谢大家。
if中getchar()在判断是否为\n时也要从输入缓存中读取一个字符。
这样scanf("%s",word[i]);再从输入缓存中读取时就少了一个字符。
因为你第一个字母被getchar吃了,后面文字都完整是因为getchar吃的都是空格
试试在句首输入一个空格
有帮助望采纳
要保证先scanf()读入,修改如下,供参考:
#include<stdio.h>
int main()
{
int i = 0;
char word[80][80];
while (scanf("%s", word[i++]) && (getchar()) != '\n');
while (--i)
{
printf("%s ", word[i]);
}
printf("%s", word[0]);
return 0;
}
改这样也可以:
#include<stdio.h>
int main()
{
int i = 0;
char word[80][80];
while (1)
{
scanf("%s", word[i++]);
if ((getchar()) == '\n') break;
}
while (--i)
{
printf("%s ", word[i]);
}
printf("%s", word[0]);
return 0;
}