字符倒序但是输入的第一个字符总是消失

实现输入字符串的倒序,我这个程序每次倒序都没有第一个字符,请帮忙看下为啥第一个被吞了,我实在看不出来

#include
#include
int main()
{
    char a[100];
    for(int m=0;scanf("%c",&a[0])!=EOF;m++) 
    {
    int j=0;
    while((a[j]=getchar())!='\n')
    {
        j++;
    }
    for(int i=j-1;i>=0;i--)
    printf("%c",a[i]);
     } 
    return 0;
}

j 要初始化为 1; 因为上面 a[0] 已经初始过值了,你后面 j = 0, 那不是 a[0] 又重新赋值了嘛

int j=1;

外层for()循环多余,修改如下,供参考:

#include <stdio.h>
#include <string.h>
int main()
{
    char a[100];
    //for (int m = 0; scanf("%c", &a[m]) != EOF; m++) 修改
    //{                                               修改
        int j = 0;
        while ((a[j] = getchar()) != '\n')
        {
            j++;
        }
        for (int i = j - 1; i >= 0; i--)
            printf("%c", a[i]);
    //}                                              修改
    return 0;
}