编写函数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]









~~毕竟,这些都是些可能会考的题目~