一道C语言函数的题目

行行都行 2020-06-09 04:22:49
这是题目


这是样例

这是错误点

这是我的代码:
void Shift( char s[] )
{int i,j,x;char c;
x=strlen(s);
for(i=0;i<3;i++)
{c=s[0];
for(j=1;j<x;j++)
s[j-1]=s[j];
s[x]=c;
}

}


我的思路可能和网上的答案不太一样,但是我觉得没什么问题,可是就是通不过,希望大神指点一下,教我怎么改
...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2020-06-09
  • 打赏
  • 举报
回复
void Shift( char s[] )
{int i,j,x;char c;
x=strlen(s);
for(i=0;i<3;i++)
{c=s[0];
for(j=1;j<x;j++)
s[j-1]=s[j];
s[x]=c; //这里要改成s[x-1]=c;因为s[x]存的是字符串结束符
}

}
weixin_46284757 2020-06-09
  • 打赏
  • 举报
回复
void Shift( char s[] )
{
int i,n=strlen(s);
char a[3];
a[0]=s[0];
a[1]=s[1];
a[2]=s[2];
for(i=3;i<n;i++) s[i-3]=s[i];
s[n-3]=a[0];
s[n-2]=a[1];
s[n-1]=a[2];
}
直接暴力
zerozerg2006 2020-06-09
  • 打赏
  • 举报
回复
仔细想一想s[x]是哪个位置,想清楚了就知道为什么错了

70,014

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧