对C语言中的数组矩阵的理解和应用

我根据自己所学知识和老师给的学习题库为路线,展开对C语言中的数组矩阵的理解

对数组和矩阵的认识

首先的知道数组是个怎么回事,在C语言中,矩阵是一种多维数组的特殊形式。矩阵通常用于表示二维的表格或者数组,其中包含行和列。C语言中,你可以使用二维数组来表示和操作矩阵。

例如:int matrix[3][3]; 这样就创建了一个3行3列的整数矩阵。你可以通过使用两个索引来访问矩阵的元素,第一个索引表示行,第二个索引表示列。例如,matrix[1][2]表示矩阵中第2行第3列的元素。

C语言中的矩阵操作通常涉及循环结构,通过嵌套的循环来遍历矩阵的所有元素。下面是一个简单的例子,演示如何初始化和遍历一个矩阵:

这段代码会输出:

1 2 3

4 5 6

7 8 9

初步了解后可以通过习题练习更好的了解到矩阵,下面是从老师的题库中找到一个题目

给定一个数字n(n≤20),按照以该数值为中心向四周逐渐递减至1的顺序输出一个矩阵,

例如n=5时,要求输出如下矩阵:

这题要通过数组和循环结构,以及函数的调用来实现该代码的输入,本人所学知识尚浅,很抱歉带来的不便,以下代码仅供参考:

#define N 40

void func3(int n)

{

    int size = 2 * n – 1;

    int m[N][N];

   

    int row_start = 0;

    int row_end = size – 1;

    int col_start = 0;

    int col_end = size – 1;

    int num = 1;

   

    int i,j;

    for( ;row_start <= row_end && col_start <= col_end; num++) {

        // 填充上方行

        for (i = col_start; i <= col_end; i++) {

            m[row_start][i] = num;

        }

        row_start++;

       

        // 填充右侧列

        for (i = row_start; i <= row_end; i++) {

            m[i][col_end] = num;

        }

        col_end–;

       

        // 填充下方行

        for (i = col_end; i >= col_start; i–) {

            m[row_end][i] = num;

        }

        row_end–;

       

        // 填充左侧列

        for (i = row_end; i >= row_start; i–) {

            m[i][col_start] = num;

        }

        col_start++;

       

        //num++; // 填充下一个数字

    }

   

    // 输出矩阵

    printf(“输出的矩阵:\n”);

    for (i = 0; i < size; i++) {

        for (j = 0; j < size; j++) {

            printf(“%2d “, m[i][j]);

        }

        printf(“\n”);

    }

   

}

以下是相关代码的实现需要主语句的实现,

#define N 40

void func3(int n)

{

    int size = 2 * n – 1;

    int m[N][N];

   

    int row_start = 0;

    int row_end = size – 1;

    int col_start = 0;

    int col_end = size – 1;

    int num = 1;

   

    int i,j;

    for( ;row_start <= row_end && col_start <= col_end; num++) {

        // 填充上方行

        for (i = col_start; i <= col_end; i++) {

            m[row_start][i] = num;

        }

        row_start++;

       

        // 填充右侧列

        for (i = row_start; i <= row_end; i++) {

            m[i][col_end] = num;

        }

        col_end–;

       

        // 填充下方行

        for (i = col_end; i >= col_start; i–) {

            m[row_end][i] = num;

        }

        row_end–;

       

        // 填充左侧列

        for (i = row_end; i >= row_start; i–) {

            m[i][col_start] = num;

        }

        col_start++;

       

        //num++; // 填充下一个数字

    }

   

    // 输出矩阵

    printf(“输出的矩阵:\n”);

    for (i = 0; i < size; i++) {

        for (j = 0; j < size; j++) {

            printf(“%2d “, m[i][j]);

        }

        printf(“\n”);

    }

   

}

以下代码及供参考。

#define N 40

void func3(int n)

{

    int size = 2 * n – 1;

    int m[N][N];

   

    int row_start = 0;

    int row_end = size – 1;

    int col_start = 0;

    int col_end = size – 1;

    int num = 1;

   

    int i,j;

    for( ;row_start <= row_end && col_start <= col_end; num++) {

        // 填充上方行

        for (i = col_start; i <= col_end; i++) {

            m[row_start][i] = num;

        }

        row_start++;

       

        // 填充右侧列

        for (i = row_start; i <= row_end; i++) {

            m[i][col_end] = num;

        }

        col_end–;

       

        // 填充下方行

        for (i = col_end; i >= col_start; i–) {

            m[row_end][i] = num;

        }

        row_end–;

       

        // 填充左侧列

        for (i = row_end; i >= row_start; i–) {

            m[i][col_start] = num;

        }

        col_start++;

       

        //num++; // 填充下一个数字

    }

   

    // 输出矩阵

    printf(“输出的矩阵:\n”);

    for (i = 0; i < size; i++) {

        for (j = 0; j < size; j++) {

            printf(“%2d “, m[i][j]);

        }

        printf(“\n”);

    }

   

}

版权声明:本文为博主作者:Tian185369853原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/Tian185369853/article/details/135484459

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2024年4月1日
下一篇 2024年4月1日

相关推荐