c语言 将一维数组中的元素向左移动n次编程填空

 我来答
哥们儿会_臭臭
推荐于2017-12-16 · TA获得超过876个赞
知道小有建树答主
回答量:421
采纳率:50%
帮助的人:187万
展开全部
#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;
}
追问
已经考完了…嗷!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式