有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一函数,实现以上功能,在主函数中输入n个整数和输出调整后的n个数.c语言求大神
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 04:53:59
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一函数,实现以上功能,在主函数中输入n个整数和输出调整后的n个数.c语言求大神
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一函数,实现以上功能,在主函数中输入n个整数和输出调整后的n个数.c语言求大神
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一函数,实现以上功能,在主函数中输入n个整数和输出调整后的n个数.c语言求大神
#include <stdio.h>
void func(int n,int m,int *a)
{
\x09int b[100],i;
\x09for(i = 0;i<m;i++)
\x09\x09 b[i] = a[n-m+i];
\x09for(i=(n-m-1);i>=0;i--)
\x09\x09 a[i+m] = a[i];
for(i = 0;i<m;i++)
a[i] = b[i];
}
int main()
{
int a[100],i,n,m;
\x09printf("input n\r\n");
\x09scanf("%d",&n);
\x09for(i=0;i<n;i++)
\x09\x09scanf("%d",&a[i]);
printf("input m\r\n");
\x09scanf("%d",&m);
\x09for(i=0;i<n;i++)
printf("%d\t",a[i]);
\x09func(n,m,a);
printf("\r\nafter change\r\n");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
return 0;
}
这个比较简单直观
不然还可以用单链表 换换指针就行
#include
#include
#include
//array:input array
//n:length of array
//m:shift number
void Shift(int* array,int n,int m)
{
int i=0,j;
全部展开
#include
#include
#include
//array:input array
//n:length of array
//m:shift number
void Shift(int* array,int n,int m)
{
int i=0,j;
int temp;
while(i
temp=array[n-1];
for(j=n-1;j>0;j--)
array[j]=array[j-1];
array[0]=temp;
i++;
}
}
int main()
{
int i,a[10]={1,2,3,4,5,6,7,8,9,10};
Shift(a,10,4);//移动4位
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
收起