各位高手帮分析分析,这一问题我搞了两天也弄不出来
编一程序,输入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; }