解题思路:

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

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

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

555.png

注意事项:

参考代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#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)
 

9.6 分

20 人评分

 

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

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

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

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

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

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

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

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

评论列表 共有 7 条评论

移通最菜之一 11月前 回复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;
}