C语言的实用笔记14——二维数组练习题——矩阵操作

习题1:找到数组中元素最大的值

  1. 思路:
    1. 定义一个二维数组arr[3][4],并初始化
    2. 先认为元素arr[0][0]最大,将它赋值给变量max
    3. for循环,代表行下标的循环变量i从0开始,<3  时进入循环
    	3.1 for循环,代表列下标的循环变量j从0开始,<4 时进入循环
        	3.1.1 遍历二维数组,判断max是否小于arr[i][j]
            	3.1.1 如果是,
                		那么,max保存arr[i][j]的值
                        	 将此时的行下标i保存在变量row中
                             将此时的列下标j保存在变量column中
    4. 打印最大的数在第几行第几列                      

  2. 代码:
    #include <stdio.h>
    int main(int argc, char const *argv[])
    {
        int arr[3][4] = {{1,2,3,4}, {9,7,4,6}, {-1,2,0,8}};
        int i, j;   //遍历二维数组
        int max = arr[0][0];    //不妨先认为元素arr[0][0]最大
        int row;    //记录最大数的行
        int column; //记录最大数的列
        for(i=0; i<3; i++){
            for(j=0; j<4; j++){
                if(max < arr[i][j]){
                    max = arr[i][j];
                    row = i;
                    column = j;
                }
            }
        }
        printf("数组中最大的元素在第%d行第%d列,是%d", row, column ,max);
        return 0;
    }

习题2:实现矩阵的转置,

  1.  思路:根据公式 A[i;j] = AT[j;i],用循环嵌套遍历即可。
    #include <stdio.h>
    int main(int argc, char const *argv[])
    {
        int i, j;
        int a[4][3] = {{1,2,3}, {5,6,7}, {9,10,11}, {13,14,15}};
        int a_T[3][4];
        for (i=0; i<4; i++){
            for (j=0; j<3; j++){
                a_T[j][i] = a[i][j];
            }
        }
        puts("矩阵转置后为");
        for (i=0; i<3; i++){
            for (j=0; j<4; j++){
                printf("%-4d", a_T[i][j]);
            }
            putchar('\n');
        }
        return 0;
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值