• 1009. 说反话 (20)


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

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

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

    输入样例:

    Hello World Here I Come
    

    输出样例:

    Come I Here World Hello

    思路:C语言写的,回头再用Java重写一次,由于没有特殊的集成函数只能使用char[]来操作,主要思想是记录分隔符在字符数组str[]中的位置,将其Index记录在int[cnt++] arr中,计数变量cnt在for循环中可以实现每个单词的打印输出;
    需要注意的是:在仅仅有一个单词的时候,要使arr[0] = str.length;
     1 #include<stdio.h>
     2 #include<string.h>
     3 
     4 int main()
     5 {
     6     int arr[80] = {0};
     7     char str[80];
     8     gets(str);
     9     int length = strlen(str);
    10     int cnt = 0;
    11     for(int i=0; i<length; i++)//记下字符串中空格的原始下标 
    12     {
    13         if(str[i]== ' ')
    14             arr[cnt++] = i; 
    15     }
    16     if(cnt == 0) arr[0] = length;
    17 //    for(int i=0; i<cnt; i++)
    18 //    printf("%d ",arr[i]);
    19 
    20     int endIndex = length;
    21     for(int i=cnt-1; i>=0; i--)
    22     {
    23         for(int j=arr[i]+1; j<endIndex; j++)
    24         {
    25             if(j!=endIndex-1)
    26             printf("%c",str[j]);
    27             else
    28             printf("%c ",str[j]); 
    29         }
    30         endIndex = arr[i];
    31     }
    32     for(int i=0; i<arr[0]; i++)
    33         printf("%c",str[i]);
    34     
    35     return 0;
    36  } 
  • 相关阅读:
    用.net开发wap
    MVC3 中使用 Ajax.ActionLink Ajax.BeginForm
    收藏一下这个微软MVP的老外博客
    第三篇:Django的路由系统
    第二篇:Django自定义登录功能
    第一篇:Django简介
    json和pickle序列化模块
    oracle 11gr2 rac修改VIP
    修改监听端口号
    删除磁盘组
  • 原文地址:https://www.cnblogs.com/valar/p/6151794.html
Copyright © 2020-2023  润新知