求教一道c语言题目,多谢大佬?

字符串走马灯(20分)
题目内容:

多彩的霓虹灯点缀了我们的夜生活,很多店铺都用各式各样的霓虹灯来招徕顾客。

你是一家新店的店主,决定采用霓虹灯和传统走马灯结合的方式来展现商品信息。

走马灯的规则如下:

对于给定的字符串abc(不超过20),走马灯应该连续出现:

abc

bca

cab

abc

如此循环往复(第一行出现的字符串和最后一行的字符都和输入一模一样)

输入格式:

一个字符串,如abc

输出格式:

abc

bca

cab

abc

输入样例:

abc

输出样例:

abc

bca

cab

abc

#include<stdio.h>

#include<string.h>

void main() { char s[21],c; int n,i,j;

  scanf("%s",s); n=strlen(s); printf("%s\n",s);

  for ( i=0;i<n;i++ ) {

    for ( c=s[0],j=1;j<n;j++ ) s[j-1]=s[j];

    s[n-1]=c; printf("%s\n",s);

  }

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-18

#include <stdio.h>
int main()
{ char s[42];
int i,j,k;
scanf("%s",s);
for(i=0; s[i]; i++);
for(k=i,j=0; j<k;)
s[i++]=s[j++];
for(i=1; i<=k; i++)
{ for(j=i; j<i+k; j++)
putchar(s[j]);
putchar('\n');
}
return 0;
}

本回答被网友采纳
第2个回答  2019-11-18
#include "stdio.h"
#include "string.h"
void main()
{
char i=0,j=0,length;
char s[21];
gets(s);
length = strlen(s);
for(i = 0;i < length+1;i++)
{
for(j = i;j < length;j++)
{
printf("%c",s[j]);
}
for(j = 0;j < i;j++)
{
printf("%c",s[j]);
}
printf("\n");
}
}
第3个回答  2019-11-17
这个可以用队列的方式通过下标的改变进行显示。好处是不用改变字符数组内容的顺序。本回答被提问者采纳
第4个回答  2019-11-18
具体要求是?
相似回答