各位高手帮分析分析,这一问题我搞了两天也弄不出来
编一程序,输入12345,输出:12345
51234
45123
34512
23451
12345
程序代码:#include <stdio.h>
#include <string.h>
int main(void)
{
char str[128];
char tmp;
int str_len;
scanf("%s",str);
str_len = strlen(str);
for(int j=0;j < str_len;j++)
{
tmp = str[str_len-1];
for(int i=str_len-1;i > 0;i--)
str[i] = str[i-1];
str[0] = tmp;
printf("%s\n",str);
}
return 0;
}


程序代码:#include <stdio.h>
#include <string.h>
int len;
void print(char *input,int start){
int i;
for(i=0;i<len;i++)
putchar(input[add_index(start,i)]);
printf("\n");
}
int add_index(int start,int step){
if(start+step<=len-1) return start+step;
else if(start+step>len-1) return start+step-len;
}
int main(){
char input[100] = "";
int j;
gets(input);
len = strlen(input);
//print the original input
puts(input);
//print in reverse order
for(j=len-1;j>=0;j--)
print(input,j);
return 0;
}
程序代码:#include <stdio.h>
#include <string.h>
int main(void)
{
char str[128];
char *str_p;
char tmp;
int str_len;
scanf("%s",str);
str_len = strlen(str);
str_p = str+str_len-1;
for(int j=0;j < str_len;j++)
{
tmp = *str_p;
printf("%s",str_p);
*str_p = '\0';
printf("%s\n",str);
*str_p = tmp;
str_p--;
}
return 0;
}