c语言写一个1-n的魔方阵
时间: 2024-11-23 16:49:09 浏览: 55
魔方阵,也被称为幻方,是一种特殊的矩阵,其行、列以及对角线上的数字之和都相等。在C语言中编写一个1到n的魔方阵,通常会采用循环和数组结构来实现。以下是一个简单的5x5魔方阵的例子,你可以通过递增调整大小来创建更大的矩阵:
```c
#include <stdio.h>
#define N 5
void printMagicSquare(int matrix[N][N]) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
// 生成魔方阵函数
void generateMagicSquare(int matrix[N][N], int n) {
int sum = (n * (n + 1)) / 2;
int current_sum = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
matrix[j][i] = ++current_sum % n; // 从1开始填充
current_sum += sum - matrix[j][i]; // 确保每行、列和对角线总和相等
}
}
}
int main() {
int magic_square[N][N];
generateMagicSquare(magic_square, N);
printMagicSquare(magic_square);
return 0;
}
```
这个程序首先定义了一个`generateMagicSquare`函数,它使用嵌套循环生成并填充魔方阵,同时保证每行、每列和两条对角线上的元素之和等于 `(n*(n+1))/2`。
如果你想创建更大的魔方阵,只需改变`#define N 5`为所需的行数即可。运行上述代码后,会打印出一个指定大小的魔方阵。
阅读全文