1. 编程学习网 > 编程教程 > C语言教程 > C语言经典案例:有 n个整数,使其前面各数顺序向后移 m 个位置,

C语言经典案例:有 n个整数,使其前面各数顺序向后移 m 个位置,

C语言案例分析:无。

实现代码如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{

int arr[20];

int i,n,offset;

//输入数组大小和数组内容

printf("Total numbers?\n");

scanf("%d",&n);

printf("Input %d numbers.\n",n);

for(i=0;i<n;i++)

scanf("%d",&arr[i]);

//输入滚动偏移量

printf("Set your offset.\n");

scanf("%d",&offset);

printf("Offset is %d.\n",offset);

//打印滚动前数组

print_arr(arr,n);

//滚动数组并打印

move(arr,n,offset);

print_arr(arr,n);

}

//打印数组

void print_arr(int array[],int n)

{

int i;

for(i=0;i<n;++i)

printf("%4d",array[i]);

printf("\n");

}

//滚动数组

void move(int array[],int n,int offset)

{

int *p,*arr_end;

arr_end=array+n; //数组最后一个元素的下一个位置

int last;

//滚动直到偏移量为0

while(offset)

{

last=*(arr_end-1);

for(p=arr_end-1;p!=array;--p) //向右滚动一位

*p=*(p-1);

*array=last;

--offset;

}

}

本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/cyuyan/887.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休