----------------解决方案--------------------------------------------------------
#include <stdio.h>
#define M 50
move(a,m,n)
int a[],m,n;
{int i,j,t[M];
for(i=0;i<n;i++)
t[i]=a[m+i];
for(;i<m+n;i++)
t[i]=a[i-n];
for(i=0;i<m+n;i++)
a[i]=t[i];
}
main()
{
int m,n,i,a[M];
printf("please input 'm' and 'n':");
scanf("%d%d",&m,&n);
for(i=0;i<m+n;i++)
if(i<m)a[i]=2*i+1;
else if(i==m) a[i]=2;
else a[i]=a[i-1]+2;
for(i=0;i<m+n;i++)
printf("%3d",a[i]);
move(a,m,n);
printf("\n*******************************************************\n");
for(i=0;i<m+n;i++)
printf("%3d",a[i]);
----------------解决方案--------------------------------------------------------
贴上我的代码
我将LZ的问题修改了一下1.将整数变成了字符
2.最后有几个字符也由用户自己决定输入
感觉这样才像一个函数,否则定死了就没什么用了
#include <stdio.h>
#include<string.h>
void testfunc(char *a, int step);
int main(void)
{
char a[] = "abcdefghijkl";
int i;
printf("please input a num:");
scanf("%d", &i);
testfunc(a, i);
printf("%s", a);
}
void testfunc(char *a, int step)
{
int len;
char temp1, temp2;
int i = 0, j;
len = strlen(a);
if (step > len || step < 0)
{
printf("please input a right num"); /* 实际工程中这里应该返回一个错误类型由main函数处理 */
return;
}
if (0 == len % step)
{
while (i < step)
{
j = i;
temp1 = a[i];
while (j< len)
{
temp2 = a[(j + step) % len];
a[(j + step) % len] = temp1;
temp1 = temp2;
j += step;
}
i++;
}
}
else
{
temp1 = a[0];
while (i % len != 0 || i == 0)
{
temp2 = a[(i + step) % len];
a[(i + step) % len] = temp1;
temp1 = temp2;
i += step;
}
}
}
----------------解决方案--------------------------------------------------------
这是我写的,
这是我花半天时间给写的,很简单,高手指点一下吧;#include "stdio.h"
void print(int *);
main()
{
int aa[20]={8,6,4,10,12,20,1,3,5,7,13,17},cc[20]={0};
int i,j,*p1,*p2;
p1=aa;
p2=aa;
if(aa[0]%2)//如果数组是以奇数开头
{
for(i=0;aa[i]%2&&aa[i];i++)
p1++;
for(i=0;*p1;p1++,i++)//偶数数据移入CC数组中
cc[i]=*p1;
for(;*p2%2;p2++)
cc[i++]=*p2;
print(cc);
}
else
{
for(i=0;aa[i]%2==0&&aa[i];i++)
p1++;
for(i=0;*p1;p1++,i++)//奇数数据移入CC数组中
cc[i]=*p1;
for(;*p2%2==0;p2++)//偶数数据移入CC数组中
cc[i++]=*p2;
print(cc);//输出子函数
}
}
void print(int *array)
{
int i=0;
for(;*array;array++)
printf("%d ",*array);
getch();
}
----------------解决方案--------------------------------------------------------