#include
int main() {
int count[5] = {0}; // 統計0-4
int x, total = 0;
printf("輸入0-4之間的整數 (-1結束):\n");
while (total < 20 && scanf("%d", &x) == 1) {
if (x == -1) break;
if (x >= 0 && x <= 4) {
count[x]++;
total++;
} else {
printf("輸入超出範圍,忽略。\n");
}
}
printf("統計結果:\n");
for (int i = 0; i <= 4; i++) {
printf("%d: %d次\n", i, count[i]);
}
printf("總計: %d\n", total);
return 0;
}
a[30],按順序賦值2,4,6,...,60 (從2開始的偶數)avg[6]#include
int main() {
int a[30];
double avg[6];
// 賦值:2,4,6,...,60
for (int i = 0; i < 30; i++) {
a[i] = 2 * (i + 1);
}
// 每5個求平均
for (int group = 0; group < 6; group++) {
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += a[group * 5 + i];
}
avg[group] = sum / 5.0; // 強制浮點除法
}
// 輸出
printf("原數組:\n");
for (int i = 0; i < 30; i++) {
printf("%3d", a[i]);
if ((i + 1) % 10 == 0) printf("\n");
}
printf("\n每組平均值:\n");
for (int i = 0; i < 6; i++) {
printf("第%d組: %.1f\n", i + 1, avg[i]);
}
return 0;
}
arr[2][3] (2行3列)2,4,6,8,10,12行優先存儲 (C語言默認):
arr[0][0]=2 arr[0][1]=4 arr[0][2]=6
arr[1][0]=8 arr[1][1]=10 arr[1][2]=12
列優先輸出順序:
arr[0][0], arr[1][0], // 第0列
arr[0][1], arr[1][1], // 第1列
arr[0][2], arr[1][2] // 第2列
輸出: 2, 8, 4, 10, 6, 12
#include
int main() {
int arr[2][3];
int val = 2;
// 行優先賦值
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
arr[i][j] = val;
val += 2;
}
}
printf("行優先存儲內容:\n");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%4d", arr[i][j]);
}
printf("\n");
}
printf("\n列優先輸出:\n");
for (int j = 0; j < 3; j++) { // 外層遍歷列
for (int i = 0; i < 2; i++) { // 內層遍歷行
printf("%4d", arr[i][j]);
}
}
printf("\n");
return 0;
}
count[value]++group * group_size + offset 訪問分組元素sum / 5.0 或 (double)sum / 5 避免整數截斷malloc + 指針算術arr[i][j] → flat[i*cols + j]這三道題涵蓋了一維數組統計、分組聚合、二維數組存儲與遍歷三大核心場景。熟練掌握下標計算與循環嵌套順序,是數組操作的基本功。