温馨提示×

c语言如何编写魔方阵

小亿
96
2024-10-11 17:26:17
栏目: 编程语言

在C语言中编写一个魔方阵需要遵循以下步骤:

  1. 引入必要的头文件。
  2. 定义一个函数,用于生成魔方阵。
  3. 在主函数中调用该函数,并输出结果。

以下是一个简单的示例代码:

#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) {
            // 如果当前位置无效,则向上移动一行
            row--;
        } else {
            // 将数字放置在正确的位置
            magic_square[row][col] = num++;
        }

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

        // 如果已经到达第一行,则向下移动一行
        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("请输入魔方阵的大小(奇数):");
    scanf("%d", &n);

    if (n % 2 == 0) {
        printf("魔方阵的大小必须是奇数。\n");
        return 1;
    }

    print_magic_square(n);

    return 0;
}

在这个示例中,print_magic_square函数用于生成并输出指定大小的魔方阵。主函数main负责接收用户输入的魔方阵大小,并调用print_magic_square函数进行输出。注意,这个示例仅适用于奇数大小的魔方阵。如果需要生成偶数大小的魔方阵,需要进行相应的调整。

0