数组元素逆序交换

数组元素逆序交换

例如:

输入:

1,2,3,4,5

输出:

5,4,3,2,1

代码:

#include
#define N 5
int main() {
	int a[N], i, temp;
	for (i = 0; i < N; i++) {
		scanf("%d", &a[i]);
	}
	for (i = 0; i < N; i++) {
		printf("%4d", a[i]);
	}
	for (i = 0; i < N / 2; i++) {
		temp = a[i];
		a[i] = a[N - 1 - i];
		a[N - 1 - i] = temp;
	}
	printf("\n交换后的数组为: \n");
	for (i = 0; i < N; i++) {
		printf("%4d", a[i]);
	}
	return 0;
}

‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件,超详细解决步骤

数组元素逆序交换_第1张图片

数组元素逆序交换_第2张图片 数组元素逆序交换_第3张图片

 数组元素逆序交换_第4张图片

汉诺塔问题 

以n=2为例:

数组元素逆序交换_第5张图片

数组元素逆序交换_第6张图片

pos1:起始位置

pos2:中转位置

pos3 :最终位置

#include
void move(char pos1, char pos2) {
	printf("%c->%c ", pos1, pos2);
}
void Hanoi(int n,char pos1,char pos2,char pos3) {
	if (n == 1) {
		move(pos1, pos3);
	}
	else {
		Hanoi(n - 1, pos1, pos3, pos2);
		move(pos1, pos3);
		Hanoi(n - 1, pos2, pos1, pos3);
	}
}
int main() {
	Hanoi(2, 'A', 'B', 'C');
	return 0;
}

数组元素逆序交换_第7张图片

你可能感兴趣的:(算法,数据结构)