#include <stdio.h>
void main() {
float b[6] = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6}, t;
int i;
t = b[0];
for (i = 0; i < 5; i++)
b[i] = b[i+1];
b[5] = t;
for (i = 0; i < 6; i++)
printf("%6.2f", b[i]);
}
t = b[0] → t = 1.1。i=0..4 執行 b[i] = b[i+1]:
{2.2, 3.3, 4.4, 5.5, 6.6, 6.6}(最後一位暫時未變)。b[5] = t → b[5] = 1.1。{2.2, 3.3, 4.4, 5.5, 6.6, 1.1}。 2.20 3.30 4.40 5.50 6.60 1.10
%6.2f 佔 6 字元寬度,保留 2 位小數,右對齊。
// 循環左移 k 位 (k < n)
void rotate_left(float arr[], int n, int k) {
k %= n;
if (k == 0) return;
float temp[k];
memcpy(temp, arr, k * sizeof(float)); // 備份前 k 個
memmove(arr, arr + k, (n - k) * sizeof(float)); // 後段前移
memcpy(arr + n - k, temp, k * sizeof(float)); // 備份值接到尾部
}
void* + 元素大小)。總結: 本題考察陣列元素搬移邏輯與暫存變數使用,是基礎陣列操作的經典必考點。掌握「備份→搬移→恢復」三步曲,即可靈活應對各類循環移位變體。