解题思路:

本题要求写一个自定义的函数,使得二维数组的行和列互换。

因此,自定义函数的功能就是使二维数组的行和列互换。二维数组的输入和输出都用两个for循环实现。

行和列互换方法,(看下图)

555.png

注意事项:

参考代码:

#include<stdio.h>
int main()
{
	int a[3][3],i,j;
	for(i=0;i<3;i++)//遍历输入二维数组
	{
	    for(j=0;j<3;j++)
	    {
	        scanf("%d",&a[i][j]);
	    }
	}
	
	 fun (a);//调用行列互换的函数
	 
    for(i=0;i<3;i++)//行列互换后,进行二维数组的输出
	    {
	        for(j=0;j<3;j++)
	        {
	            printf("%d ",a[i][j]);
	        }
	    printf("\n");
	    }
	return 0;
}

void fun(int a[3][3])//自定义行列互换函数
{
    int t,i,j;
    for(i=0;i<3;i++)
	{
	    for(j=0;j<3;j++)
	    {
	        if(i<=j)//只遍历上三角
	        {
	            t=a[i][j];//以下三句进行值互换
	            a[i][j]=a[j][i];
	            a[j][i]=t;
	        }
	    }
	}
}

欢迎交流有无更简单方法!!

点赞(0)
 

0.0分

20 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 7 条评论

移通最菜之一 8月前 回复TA
@不是那个小龙哥 scanf("%d",*(a+i)+j);大佬这句话什么意思
不是那个小龙哥 2年前 回复TA
#include <stdio.h>

int main(){
    int a[3][3];
    for (int i=0; i<3; i++) {
        for (int j=0; j<3; j++) {
            scanf("%d",*(a+i)+j);
        }
    }
    for (int i=0; i<3; i++){
        for (int j=0; j<3; j++) {
            printf("%d ",a[j][i]);
        }
        printf("\n");
    }
}
1111P 2年前 回复TA
#include<stdio.h>
int main()
{
	int a[3];
	int b[3];
	int c[3];
	for(int i=0;i<3;i++){
		scanf("%d %d %d",&a[i],&b[i],&c[i]);
	}

	int *aa[]={a,b,c};
	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			printf("%d ",aa[i][j]);	
			}
			printf("\n");
		}	
	
	return 0;
}
外物 2年前 回复TA
#include<stdio.h>
int main()
{
    int a[3][3];
    int i,j;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    
     for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%d ",a[j][i]);
        }
        printf("\n");
    }


	return 0;
}
晴子 2年前 回复TA
int a[3][3];
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            printf("%d ", a[j][i]);
        }
        printf("\n");
    }
    return 0;
KanoMirai 2年前 回复TA
#include<stdio.h>
int main()
{
	int a[3][3],b[3][3];
	
	int i,j;
	for(i=0;i<3;i++)
	{
	    for(j=0;j<3;j++)
	    {
	       scanf("%d ",&a[i][j]);
	       b[j][i]=a[i][j];
	    }
	}
	for(i=0;i<3;i++)
	{
	    for(j=0;j<3;j++)
	    {
	       printf("%d ",b[i][j]);
	    }
	    printf("\n");
	}
	return 0;
}