首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言二維陣列填充與多題綜合練習解析

     編輯:C 語言問答

題目 1:二維陣列規律填充

輸入 m (2<m<10),輸出 m×m 陣列,第 i 列、第 j 欄(0-base)值為 (i+1)*(j+1)。即乘法表矩陣。

正確程式碼

#include <stdio.h>

int main() {
    int m;
    printf("請輸入 m (2 < m < 10): ");
    scanf("%d", &m);
    
    if (m <= 2 || m >= 10) {
        printf("輸入超出範圍。\n");
        return 1;
    }
    
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < m; j++) {
            printf("%-4d", (i+1)*(j+1));  // %-4d 左對齊寬度4
        }
        printf("\n");
    }
    return 0;
}

執行範例 m=4

1   2   3   4   
2   4   6   8   
3   6   9   12  
4   8   12  16  

原始回答的程式碼邏輯錯誤(`m=1` 初始化、`m+=j+1` 累加),導致輸出不符合規律。上述雙重迴圈直觀對應數學定義。


題目 2-8 綱要解法

2. 10 個整數找最大值(函數版)

int find_max(int arr[], int n) {
    int max = arr[0];
    for (int i = 1; i < n; i++) if (arr[i] > max) max = arr[i];
    return max;
}

3. 二維陣列平均值

double avg_2d(int rows, int cols, int arr[rows][cols]) {
    long long sum = 0;
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < cols; j++)
            sum += arr[i][j];
    return (double)sum / (rows * cols);
}

4. 二維陣列搜尋指定元素

回傳找到的位置(列、欄)或 -1。雙重迴圈遍歷比對。

5. 指標遍歷陣列列印

int a[10] = {1,3,4,5,6};
int *p = a;  // 等價 &a[0]
for (int i = 0; i < 5; i++) {
    printf("%d ", *(p+i));  // 或 p[i]
}

6. 學生成績結構體陣列輸入輸出

struct Student {
    int num;
    char name[20];
    float score[3];
};

void print_students(struct Student s[], int n) {
    for (int i = 0; i < n; i++) {
        printf("%d %s %.1f %.1f %.1f\n", s[i].num, s[i].name, s[i].score[0], s[i].score[1], s[i].score[2]);
    }
}

7. 字串寫入檔案以 '!' 結束

FILE *fp = fopen("test.txt", "w");
char ch;
while ((ch = getchar()) != '!') fputc(ch, fp);
fclose(fp);

8. 字串轉大寫寫入檔案

FILE *fp = fopen("test.txt", "w");
char ch;
while ((ch = getchar()) != '!') fputc(toupper(ch), fp);
fclose(fp);

學習建議

這八題涵蓋**陣列操作、函數模組化、指標、結構體、檔案 I/O、字元處理**等核心主題。建議逐題獨立完成、編譯測試、對照規格驗證,再整合成完整專案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved