字符串走马灯(20分)
题目内容:
多彩的霓虹灯点缀了我们的夜生活,很多店铺都用各式各样的霓虹灯来招徕顾客。
你是一家新店的店主,决定采用霓虹灯和传统走马灯结合的方式来展现商品信息。
走马灯的规则如下:
对于给定的字符串abc(不超过20),走马灯应该连续出现:
abc
bca
cab
abc
如此循环往复(第一行出现的字符串和最后一行的字符都和输入一模一样)
输入格式:
一个字符串,如abc
输出格式:
abc
bca
cab
abc
输入样例:
abc
输出样例:
abc
bca
cab
abc
#include <stdio.h>
#include <string.h>
int main()
{
char a[20]={0};
gets(a);
int i ,temp,k;
k=strlen(a);
for(i=1;i<=k;i++){
temp = a[1];
a[1] = a[k];
a[k] = temp;
printf("%s\n",a);
}
}
#include <stdio.h>
#include <string.h>
int main()
{
char a[20] = { 0 };
gets_s(a,19);
int i, temp, k, j;
k = strlen(a);
for (i = 0; i <= k; i++) {
printf("%s\n", a);
for (j = 0; j < k - 1; j++) {
temp = a[j];
a[j] = a[j+1];
a[j + 1] = temp;
}
}
}
#include <stdio.h>
#include <string.h>
int main()
{
char a[90] = { 0 };
fgets(a,89,stdin);
int i, temp, k, j,temp1;
k = strlen(a);
for (i = 0; i < k; i++)
{printf("%s",a);
temp=a[0];
for (j = 0; j <k - 2; j++)
{
temp1=a[j];
a[j]=a[j+1];
a[j+1]=temp1;
}
}
}
#include<stdio.h>
#include<string.h>
main()
{
char a[20],temp;
int i,b,j;
gets(a);
b=strlen(a);
if(b==1)
puts(a);
else
for(i=0;i<=b;i++)
{
puts(a);
temp=a[0];
for(j=0;j<=b-1;j++)
{
a[j]=a[j+1];
}
a[b-1]=temp;
}
return 0;
}
\\本人菜鸡,按照题目要求可以跑出来但是感觉优化空间很大,期待大佬的指点