说反话PTA乙级1009
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子。
#include<stdio.h>
#include<string.h>
int main()
{
char word[81];
int cnt[81] = {-1,0};//定义一个位置,方便求后期单个单词的长度
int i,k = 0,count = 0;
scanf("%[^\n]",word);
for(i = 0;i < 81;i++){
if(word[i] == ' ')
{
count++;
cnt[count] = i;
}
if(word[i] == '\0')
{
count++;
cnt[count] = i;
break;
}
}
int len[count];
for(i = 0;i < count;i++){
len[i] = cnt[i + 1] - cnt[i];
}
char string[count - 1][81];//把字符串拆成几个小字符串
for(i = 0;i < count;i++){
int j = 0;
for(j;j < len[i];j++){
string[i][j] = word[k++];
if(word[k] == ' ')
{
k++;
string[i][j + 1] = '\0';
break;
}
}
}
while(count--)
{
printf("%s%c",string[count],count?'\0':' ');
}
return 0;
}
输出结果:
DVC++:
gcc: