c语言 将一维数组中的元素向左移动n次编程填空
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
void reverse(int *src,int n){
int i,tmp;
for(i=0;i<n/2;i++){
tmp=src[i];
src[i]=src[n-i-1];
src[n-i-1]=tmp;
}
}
void left_n(int *src,int len,int n){
n%=len;
n=(n+len)%len;
reverse(src,n);
reverse(src+n,len-n);
reverse(src,len);
}
int main(){
int n,len,*a,i;
printf("请输入一位数组的大小:");
scanf("%d",&len);
a=(int*)malloc(sizeof(int)*len);
printf("请输入%d个整数:\n",len);
for(i=0;i<len;i++)
scanf("%d",&a[i]);
printf("往左移动多少次:");
scanf("%d",&n);
left_n(a,len,n);
printf("移动后结果为:\n");
for(i=0;i<len;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
追问
已经考完了…嗷!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询