1. 程式人生 > 實用技巧 >將一個數組中的值按逆序重新存放。例如:原來順序為8,6,5,4,1。要求改為1,4,5,6,8

將一個數組中的值按逆序重新存放。例如:原來順序為8,6,5,4,1。要求改為1,4,5,6,8

將一個數組中的值按逆序重新存放。例如:原來順序為8,6,5,4,1。要求改為1,4,5,6,8。

【答案解析】

該題為陣列的逆置,具體處理方式如下:

如果begin < end時,則迴圈進行一下操作

  1. 給定兩個下標begin和end,begin放在陣列起始的位置,end放在陣列最後一個元素的位置
  2. 交換begin和end位置的元素
  3. begin往後移動,end往前移動

【程式碼實現】

#include<stdio.h>
int main()
{
	int array[5] = {8,6,5,4,1};
	int begin = 0, end = 4;

	printf("逆序之前陣列為:");
	for (int i = 0; i < 5; ++i)
		printf("%d ", array[i]);
	printf("\n");

	// 逆序:begin在陣列最左側,end在陣列最右側
	// 只要begin < end,將begin和end位置元素進行交換
	// 然後begin往後移動一步,end往前移動一步
	while (begin < end)
	{
		int temp = array[begin];
		array[begin] = array[end];
		array[end] = temp;
		begin++;
		end--;
	}

	printf("逆置之後陣列為:");
	for (int i = 0; i < 5; ++i)
		printf("%d ", array[i]);
	printf("\n");
	return 0;
}

【結果截圖】