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

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

需求描写:有 n个整数,使其后面各数次序向后移 m 个地位,最初m个数酿成最后面的 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/999.html

联系我们

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

咨询电话:400-998-2681

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