华为机试HJ13-句子逆序

1.题目描述

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

接口说明

/**

  • 反转句子
  • @param sentence 原句子
  • @return 反转后的句子
    */
    public String reverse(String sentence);

2.输入描述:

将一个英文语句以单词为单位逆序排放。

3.输出描述:

得到逆序的句子

4.示例1

输入

I am a boy

输出

boy a am I

5.代码

1.scanf 不能直接输入空格
2.找空格
3.找单词长度
4.第一个单词区分处理

#include
#include

int main(void)
{
	char a[10000];
	int len, b;
	int n = 0;
	//scanf 不能直接输入空格
	while (gets(a) != NULL)
	{
		len = strlen(a);
		for (int i = len - 1;i >= 0;i--)
		{
			n++;
			if (a[i] == ' ')
			{
				for (int j = i + 1; j < i + n; j++)
				{
					printf("%c", a[j]);
				}
				printf(" ");
				n = 0;
			}

			else if (i==0)
			{

				for (int j = 0; j < n; j++)
				{
					printf("%c", a[j]);
				}
			}
	
		}
		/*int i = 0;
		while (a[i] != ' ')
		{
			printf("%c", a[i]);
			i++;
		}*/

	}
}

你可能感兴趣的:(华为机试在线练习(牛客网))