1009. 说反话

来源:互联网 发布:宁波行知实验小学如何 编辑:程序博客网 时间:2024/05/18 01:32

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

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

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

输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
思路分析:这是第一次写的代码想法是读入字符串后用strtok函数分割开;然后放入到指针数组中逆序输出;

#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){    int i,j;    char s[81];    gets(s);    char *t[81];    char *p,*delim=" ";    for(i=0;i<81;i++){        t[i]=(char *)malloc(sizeof(char)*100);    }    i=0;    p=strtok(s,delim);    while(p!=NULL){        strcpy(t[i++],p);        p=strtok(NULL,delim);    }    for(j=i-1;j>0;j--){        printf("%s ",t[j]);    }    printf("%s",t[0]);    return 0;   }

在看过别人的代码后自己也仿照别人写了一个:

#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){    char s[81];    int i,j;    gets(s);    int leng=strlen(s);    int temp=leng;    for(i=leng;i>=0;i--){        if(s[i]==' '){            for(j=i+1;j<temp;j++){                printf("%c",s[j]);            }            printf(" ");            temp=i;        }    }    for(i=0;i<temp;i++){        printf("%c",s[i]);    }}
0 0
原创粉丝点击