请问下列代码哪里错了

#include<stdio.h>
#include<string.h>
int main()
{
int i,n;
char name[40];
printf("please enter a word:");
scanf("%s",&name);
n=strlen(name);

for(i=n-1;i>0;i--)
printf("%s",name[i]);

return 0;

}

字符数组输入不用加取地址符
scanf("%s",&name); 另外输出时是字符依次输出用%c
改好了:

#include<stdio.h>
#include<string.h>
int main()
{
int i,n;
char name[40];
printf("please enter a word:");
scanf("%s",name);
n=strlen(name);

for(i=n-1;i>=0;i--)
printf("%c",name[i]);
 
return 0;
}

img

#include <stdio.h>
#include <string.h>
int main()
{
    int i, n;
    char name[40];
    printf("please enter a word:");
    scanf("%s", &name);
    n = strlen(name);

    for (i = n - 1; i >= 0; i--)
        printf("%c", name[i]);

    return 0;
}

用%s给数组赋值的时候,后面的数组就不用加&了
一个字符一个字符输出的话,应该用%c,而不是%s