#include<stdio.h>
#include<string.h>
int main(){
    char str[1024];
    char str1[1025];
    int i,j,l,k;
    gets(str);
    l=strlen(str);
    for(i=0;i<l;i++){
        k=0;
        for(;str[l-i-1]!=' '&&i<l;i++){
            str1[k++]=str[l-i-1];
        }
        for(j=0;j<k;j++){
            printf("%c",str1[k-j-1]);
        }
        printf(" ");
    }
    return 0;
}

这题给我做麻了,下面这个解法才是我的!!!

#include<stdio.h>
#include<string.h>
int main(){
    char s[1024];
    int a[512];
    int i,l,n,t;
    t=0;
    n=1;
    gets(s);
    l=strlen(s);
    a[0]=-1;
    for(i=0;i<l;i++){
        if(s[i]==' '){
            a[n++]=i;
        }
    }
    n--;
    for(i=n;i>=0;i--){
        t=a[i]+1;
        while(s[t]!=' '&&t<l){
            printf("%c",s[t++]);
        }
        printf(" ");
    }
    printf("\n");
    return 0;
}