这个为啥我一直不通过pta呀,一直有一个扣分点

img


#include<stdio.h>
#include<string.h>
int main(){    
    int i=0;
    char a[500000];
    scanf("%[^'\n']",a);
    int n=strlen(a);
    a[n]='\0';
    int k=0;
    for(k=0;k<n;k++){
        if(a[k]==' '){
            break;
        }
    }
    for(i=n-1;i>k-1;i--){
        if(a[i]==' '){
            a[i]='\0';
        }
    }
    int kl;
    int mm=0;
    for(i=n-1;i>k-1;i--){
        if(a[i]=='\0'){
            kl=i+1;
            while(a[kl]!='\0'){
                putchar(a[kl]);
                kl++;
            }
        }
        if(a[i-1]!='\0'&&a[i]=='\0'){
            printf(" ");
        }
    }
    printf("%s",a);
}
#include <stdio.h>
#include <ctype.h>
#include <string.h>

#define N 500001

int main()
{
    char a[N];
    gets(a);
    int n = strlen(a);
    const char *p = a + n - 1;
    while (p >= a)
    {
        if (isalpha(*p))
        {
            const char *last = p;
            do
            {
                p--;
            } while (p >= a && isalpha(*p));
            const char *first = p + 1;
            for (; first <= last; ++first)
                putchar(*first);
            if (p > a)
                putchar(' ');
        }
        else
        {
            p--;
        }
    }
    return 0;
}

#include <stdio.h>
#include<string.h>
//输入“I like beijing.”
//输出“beijing. like I”
void exchange_sentence(char arr1[],int sz)
{
    int count = 0;
    for (int i =sz-1; i >= 0; i--)
    {
        count++;
        if (arr1[i] == ' ')
        {
            for (int j = i+1; j <i+count; j++)
            {
                printf("%c", arr1[j]);
            }
            printf(" ");
            count = 0;
        }
        
    }
}


int main()
{
    char arr[200] = { 0 };
    arr[0] = ' ';
    gets(&arr[1]);
    int sz=strlen(arr);
    exchange_sentence(arr,sz);

    printf("\n");

    //printf("%s", arr);
    //printf("%d", sz);

    return 0;
}

#include <stdio.h>
#include<string.h>
//输入“I like beijing.”
//输出“beijing. like I”
void exchange_sentence(char arr1[],int sz)
{
    int count = 0;
    for (int i =sz-1; i >= 0; i--)
    {
        count++;
        if (arr1[i] == ' ')
        {
            for (int j = i+1; j <i+count; j++)
            {
                printf("%c", arr1[j]);
            }
            printf(" ");
            count = 0;
        }
        
    }
}


int main()
{
    char arr[500001] = { 0 };
    arr[0] = ' ';
    gets(&arr[1]);
    int sz=strlen(arr);
    exchange_sentence(arr,sz);

    printf("\n");

    //printf("%s", arr);
    //printf("%d", sz);

    return 0;
}