怎么用c语言生成一个n阶方阵

avatar
作者
猴君
阅读量:1

要生成一个n阶方阵,可以使用二维数组来表示。下面是一个使用C语言生成n阶方阵的示例代码:

#include <stdio.h>  #define MAX_SIZE 10  void generateSquareMatrix(int matrix[MAX_SIZE][MAX_SIZE], int n) {     int num = 1;     int row = 0, col = n / 2;          // 初始化矩阵     for (int i = 0; i < n; i++) {         for (int j = 0; j < n; j++) {             matrix[i][j] = 0;         }     }          // 生成方阵     while (num <= n * n) {         matrix[row][col] = num;         num++;                  // 移动位置         row--;         col++;                  // 处理边界和重复数字         if (row < 0 && col >= n) {             row += 2;             col--;         }         else if (row < 0) {             row = n - 1;         }         else if (col >= n) {             col = 0;         }         else if (matrix[row][col] != 0) {             row += 2;             col--;         }     } }  void printMatrix(int matrix[MAX_SIZE][MAX_SIZE], int n) {     for (int i = 0; i < n; i++) {         for (int j = 0; j < n; j++) {             printf("%d ", matrix[i][j]);         }         printf("\n");     } }  int main() {     int matrix[MAX_SIZE][MAX_SIZE];     int n;          printf("请输入方阵的阶数:");     scanf("%d", &n);          generateSquareMatrix(matrix, n);     printMatrix(matrix, n);          return 0; } 

这段代码中,generateSquareMatrix函数用于生成n阶方阵,将生成的方阵存储在matrix二维数组中。printMatrix函数用于打印方阵的结果。

main函数中,首先通过用户输入获取方阵的阶数n,然后调用generateSquareMatrix函数生成方阵,最后调用printMatrix函数打印结果。

注意,这里使用的MAX_SIZE宏定义了方阵的最大阶数,你可以根据需要修改该值。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!