首页 > 试题广场 >

编写一个函数,把给定的一个一维数组的诸元素循环右移 j 位。

[问答题]
编写一个函数,把给定的一个一维数组的诸元素循环右移 j 位。
#include<stdio.h>
int main()
{
	int n = 0;
	int p = 0;
	int i = 0;
	int j = 0;
	int arr[20] = {0};
	printf("你要输入几个整数:");
	scanf("%d", &n);
	printf("请输入开始交换的下标:");
	scanf("%d", &p);

	printf("请输入数组: ");
	for (i = 0; i < n; i++)
		scanf("%d", &arr[i]);

	 //交换 先把前p个移到最后,然后整个数组前移
	for (i = 0,j = n; i <= p; i++, j++)
	{
		arr[j] = arr[i];
	}

	for (i = p + 1, j = 0; j < n; j++, i++)
	{
		arr[j] = arr[i];
		// 将n 后面的清零
		if (j > p)
			arr[i] = 0;

	}

	// 打印
	printf("交换后的数组:\n");

	for (i = 0; i < n; i++)
		printf("%d", arr[i]);

	return 0;
}

发表于 2024-12-17 17:04:51 回复(0)