• OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】


    /*==================================================
    单词倒排
    总时间限制: 1000ms 内存限制: 65536kB
    描述
    编写程序,读入一段英文(英文中不包含标点),
    将所有单词的顺序倒排并输出,其中单词以空格分隔。
    
    输入
    输入为一个字符串(字符串长度最大为100)
    输出
    输出为按要求排续后的字符串
    样例输入
    I am a student
    样例输出
    student a am I
    
    注:这个代码是覃宗华写的。 
    ====================================================*/
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 int main()
     6 {
     7     char a[500] = {0};
     8     int n, i, j;
     9     freopen("5.in","r",stdin);
    10     while(gets(a))
    11     {
    12         n = strlen(a);
    13         for(i=n-1;i>=0;i--)
    14         {
    15             if(a[i]==' ')
    16             {
    17                 for(j=i+1;a[j]!=' '&&a[j]!='';j++)
    18                     cout<< a[j];
    19                 cout<<" ";
    20             }
    21         }
    22         for(i=0;a[i]!=' '&&a[i]!='';i++)
    23             cout<<a[i];
    24         cout << endl;
    25     }
    26     return 0;
    27 }
     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     char a[500],temp,b[100];//a数组存贮整个句子,b存储某一个单词 
     6     int i,len,j,k;
     7     gets(a);
     8     len=strlen(a);
     9     for(i=0;i<len/2;i++)//对整个字符串进行翻转 
    10     {
    11         temp=a[i];
    12         a[i]=a[len-1-i];
    13         a[len-1-i]=temp;
    14     }
    15     //printf("
    %s
    ",a);
    16     i=0;
    17     j=0;
    18     while(a[i]!='')
    19     {
    20         if(a[i]!=' ')
    21         {//扫描句子,遇到非空格字符则存到b数组 
    22             b[j]=a[i];
    23             j++;
    24         }
    25         else
    26         {//扫描句子时遇到空格,逆向输出b数组存贮的那个被逆序的单词 
    27             for(k=j-1;k>=0;k--)
    28             {
    29                 printf("%c",b[k]);
    30             }
    31             printf(" ");
    32             j=0;
    33         }
    34         i++;
    35     }/**/
    36     for(k=j-1;k>=0;k--)//最后一个单词需要单独处理 
    37     {
    38         printf("%c",b[k]);
    39     }
    40     printf("
    ");
    41     return 0;
    42 }
  • 相关阅读:
    团队会议第八天
    团队会议第七天
    站立会议第五天
    站立会议第四天
    站立会议第三天
    站立会议第二天
    站立会议第一天(2016.4.19)
    团队报告
    团队计划backlog
    每日Scrum(5)
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/3500465.html
Copyright © 2020-2023  润新知