天天看点

1009 说反话--C语言

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello
#include<stdio.h>
#define N 81

int main()
{
	char str[N], word[N][N];//word二维数组来记录每一个单词
	int i, k=0, m=0;//k-->行下标, m-->列下标
	
	gets(str);//输入中间有空格,用gets输入
	for ( i=0; str[i]!='\0'; i++ ) {
		if ( str[i]!=' ' ) word[k][m++]=str[i];
		else if ( str[i]==' ' ){
			word[k][m]='\0';
			k++;
			m=0;
		}
		//对应最后一个单词,最后一个单词后面没有' '(空格)
		if ( str[i+1]=='\0' ) {
			word[k][m]='\0';
			k++;
		}
	}
	
	//格式化输出
	for ( i=k-1; i>=1; i-- ) {
		printf("%s ", word[i]);
	}
	printf("%s\n", word[i]); 
}
           

题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805314941992960