七庙


私信TA

用户名:uq_53706421408

访问量:446

签 名:

等  级
排  名 19983
经  验 705
参赛次数 0
文章发表 7
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

解题思路:声明两个数组a[3][3],b[3][3],后者存放转置后的元素。先用for循环嵌套输入a数组元素,接着(关键点)是转置:我们把二维数组看成矩阵,或者说坐标系,这样就很容易想到,行列互换就是横纵坐标对应的元素互换。用代码描述就是b[j][i]=a[i][j]。最后输出b数组就行了。

注意事项:输出b数组时不能把for循环嵌套这部分放到main函数中,不然会输出9个奇怪的数。因为,b数组作用域在自定义函数内。

还有,自定义函数中不要对数组a再定义,否则会重定义;也不要把数组b放到main函数中,不然自定义函数缺少数组b的声明。



注意事项:

参考代码:

#include <stdio.h>

void fun(int arr[3][3]){

    int b[3][3];

    for (int i=0;i<3;i++ ){

        for(int j=0;j<3;j++){

            b[j][i]=arr[i][j];

        }

    }

    for (int i=0;i<3;i++){

        for(int j=0;j<3;j++){

            printf("%d ",b[i][j]);

        }

        printf("\n");

    }

}

int main(){

    int arr[3][3];

    for(int i=0;i<3;i++){

        for(int j=0;j<3;j++){

            scanf("%d",&arr[i][j]);

        }

    }

    fun(arr);

    

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »