输入:班加罗尔
输出:eRoLaGnAb
以下是我试图自己编写的代码,但我无法获得理想的结果
main()
{
int i,j;
char s[10];
printf("input:");
for(j=0;j<2;j++){
scanf("%[^\n]s",&s[j]);}
char r = strrev(s[j]);
for(i=0;i<10;i++)
{
if(i%2==0)
{
printf("\n%s",r[i]);
}
else if(i%2!=0)
{
printf("%s",r[i]);
}
}
}
答案 0 :(得分:2)
r
是char
不是字符串,您不能使用子集r[i]
更改为
char *r = strrev(s);
注意strrev(s);
而不是strrev(s[j]);
,或者只是在没有中间指针的情况下调用strrev(s);
,strrev
会反转字符串。
在这部分:
if (i%2==0)
{
printf("\n%s",r[i]);
}
else if (i%2!=0)
{
printf("%s",r[i]);
}
如果i
可被2整除,则如果i
不能被2整除,则无需再次测试,应该是:
if (i%2==0)
{
printf("\n%s",r[i]);
}
else
{
printf("%s",r[i]);
}