编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。
这个是在某题类似拷贝下来的,把这个改成字符串输入处理就行了~
我已经把难度降低了啊
好吧,整理后的代码如下:
这个是在某题类似拷贝下来的,把这个改成字符串输入处理就行了~
我已经把难度降低了啊
程序代码:
#include<stdio.h> void main() { void move(int array[20], int n, int m); int number[20],n,m,i; printf("the total numbers is:"); scanf("%d",&n); printf("back m:"); scanf("%d",&m); for(i=0;i<n-1;i++) scanf("%d,",&number[i]); scanf("%d",&number[n-1]); move(number,n,m); for(i=0;i<n-1;i++) printf("%d,",number[i]); printf("%d\n",number[n-1]); } void move(int array[20], int n, int m) { int *p,array_end; array_end=*(array+n-1); for(p=array+n-1;p>array;p--) *p=*(p-1); *array=array_end; m--; if(m>0) move(array,n,m); }
好吧,整理后的代码如下:
程序代码:
#include<stdio.h> void main() { void move(char array[20], int n, int m); int n,m,i; char str[20]; printf("the total numbers is:"); scanf("%d",&n); printf("back m:"); scanf("%d",&m); getchar(); gets(str); move(str,n,m); for(i=0;i<n-1;i++) printf("%c",str[i]); printf("%c\n",str[n-1]); } void move(char array[20], int n, int m) { char *p,array_end; array_end=*(array+n-1); for(p=array+n-1;p>array;p--) *p=*(p-1); *array=array_end; m--; if(m>0) move(array,n,m); }
[此贴子已经被作者于2016-12-14 23:53编辑过]
[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]