將一個數組中的值按逆序重新存放。例如:原來順序為8,6,5,4,1。要求改為1,4,5,6,8
【答案解析】
該題為數組的逆置,具體處理方式如下:
如果begin < end時,則循環進行一下操作
- 給定兩個下標begin和end,begin放在數組起始的位置,end放在數組最后一個元素的位置
- 交換begin和end位置的元素
- 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;
}
【結果截屏】