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
