有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一函数实现 以上功能,在主函数中输入n个整数和输出调整后的n个数

/*有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一函数实现
以上功能,在主函数中输入n个整数和输出调整后的n个数*/

#include <stdio.h>
#define N 5
#define M 2

 int fun(int a[N])
 {
 	int *p;
 	p = a;
 	int i,j,t,k;
 	
 	for(i = N - M,k = 1;i > 0;i--,k++)
	 {
	 	for(j = i - 1;j < N - k;j++) 
	 	{
	 		t = *(p + j + 1);
	 		*(p + j + 1) = *(p + j);
	 		*(p + j) = t;
		 }
	 } 
}

int main()
{
	int a[N];
	int i;
	
	printf("请输入数字:");
	for(i = 0;i < N;i++)
	{
		scanf("%d",&a[i]); 
	}
	
	fun(a);
	
	printf("调整之后:");
	for(i = 0;i < N;i++)
	{
		printf("%d ",a[i]);
	} 
} 
 

谭浩强C程序设计(第四版)p291第4题
可能我的做法略显麻烦

发布了87 篇原创文章 · 获赞 9 · 访问量 8572

猜你喜欢

转载自blog.csdn.net/qq_40834200/article/details/105449145
今日推荐