Data Structure Guide: 实验案例2-2:数组元素循环左 / 右移

题目

将数组元素循环左右移动固定单位。

实验代码:

#include
#include
#include
#include "Header.h"

#pragma warning(disable:4996)


int main() {

	int n, bit;

	int direction;

	int a[20] = { 0 };

	scanf("%d%d", &n, &bit);

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

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

	}

	printf("输入数组移动方向(0: 右移, 1: 左移): ");
	scanf("%d", &direction);

	if (direction == 0) {	// 右移

		for (int i = 0; i < bit; i++) {

			int last = a[n - 1];

			for (int j = n - 1; j > 0; j--) {

				a[j] = a[j - 1];

			}

			a[0] = last;

		}

	} else {	// 左移

		for (int i = 0; i < bit; i++) {

			int first = a[0];

			for (int j = 0; j < n - 1; j++) {

				a[j] = a[j + 1];

			}

			a[n - 1] = first;

		}

	}

	printf("\n");
	for (int i = 0; i < n; i++) {

		printf("%d ", a[i]);

	}
	

	return 0;

}

你可能感兴趣的:(DataStructure,Guide,C)