PTA乙级1009看看我这个代码为什么错了

#include<stdio.h>
#include<stdlib.h>
int main()
{
    char string[81][81]={'\0'};
    int i=0;
     for(i=0;getchar()!='\n';i++){
         scanf("%s",string[i]);
         
     }
     int j=i-1;
     for(j=i-1;j>0;j--){
     printf("%s ",string[j]);
     } 
     printf("%s",string[j]);
     
      
    
    return 0;
}

你错的原因是在输入的时候把第一个字符读入了,导致输出少了一个字符。
如果有帮助请点一下我回答右上方的采纳,谢谢!以后有什么问题可以互相交流。
img
改正后:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    char string[81][81]={'\0'};
    int i=0;
     char c='1',t;
     while(c!='\n'){
        c=getchar();
        if(c=='\n')
            break;
        if(i==0)
            t=c;
        scanf("%s",string[i]);
        i++;
     }
     int j=i-1;
     for(j=i-1;j>0;j--){
     printf("%s ",string[j]);
     }
     printf("%c%s",t,string[j]);

    return 0;
}

img

题目叫《说反话》?

望采纳

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    cin>>s;
    int len=s.length();
    for(int i=len-1;i>=0;i--)
    {
        cout<<s[i];
    }
}


题目是啥?