溫馨提示×

c語言如何編寫魔方陣

小億
82
2024-10-11 17:26:17
欄目: 編程語言

在C語言中編寫一個魔方陣需要遵循以下步驟:

  1. 引入必要的頭文件。
  2. 定義一個函數(shù),用于生成魔方陣。
  3. 在主函數(shù)中調(diào)用該函數(shù),并輸出結(jié)果。

以下是一個簡單的示例代碼:

#include <stdio.h>
#include <stdlib.h>

void print_magic_square(int n) {
    int magic_square[n][n];

    // 初始化魔方陣
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            magic_square[i][j] = 0;
        }
    }

    // 生成魔方陣
    int row = n / 2;
    int col = n - 1;
    int num = 1;
    while (num <= n * n) {
        if (row < 0 || row >= n || col < 0 || col >= n || magic_square[row][col] != 0) {
            // 如果當(dāng)前位置無效,則向上移動一行
            row--;
        } else {
            // 將數(shù)字放置在正確的位置
            magic_square[row][col] = num++;
        }

        // 向右移動一列
        col--;

        // 如果已經(jīng)到達第一行,則向下移動一行
        if (col < 0) {
            col = n - 1;
            row++;
        }
    }

    // 輸出魔方陣
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%d ", magic_square[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int n;
    printf("請輸入魔方陣的大小(奇數(shù)):");
    scanf("%d", &n);

    if (n % 2 == 0) {
        printf("魔方陣的大小必須是奇數(shù)。\n");
        return 1;
    }

    print_magic_square(n);

    return 0;
}

在這個示例中,print_magic_square函數(shù)用于生成并輸出指定大小的魔方陣。主函數(shù)main負責(zé)接收用戶輸入的魔方陣大小,并調(diào)用print_magic_square函數(shù)進行輸出。注意,這個示例僅適用于奇數(shù)大小的魔方陣。如果需要生成偶數(shù)大小的魔方陣,需要進行相應(yīng)的調(diào)整。

0