解题思路和注意事项:


思路很简单,正常输入,输出的时候将i和j的位置换一下就好了


原理是数组的第一个下标先开始递增,输出的就是第一行的数其实就是原本的列。

参考代码:

#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]);
		}
	}
	for(i=0; i<3; i++){
		for(j=0; j<3; j++){
			printf("%d ",a[j][i]);
		}
		printf("\n");
	}
	return 0;
}


点赞(9)
 

0.0分

80 人评分

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

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

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

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

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

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

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

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

评论列表 共有 49 条评论

当当当 4年前 回复TA
#include<iostream>
using namespace std;
void fun(int a[3][3]) {
	int b[3][3];
	for(int i=0; i<3; i++) {
		for(int j=0; j<3; j++) {
	    b[j][i]=a[i][j];
		}
	}
	for(int i=0; i<3; i++) {
		for(int j=0; j<3; j++) {
			cout<<b[i][j]<<" ";
		}
		cout<<endl;
	}
}
int main() {
	int map[3][3];
	for(int i=0; i<3; i++) {
		for(int j=0; j<3; j++) {
			cin>>map[i][j];
		}
	}
	fun(map);
	return 0;
}
当当当 4年前 回复TA
@煮酒老麦 #include<iostream> using namespace std; void fun(int a[3][3]) { 	int b[3][3]; 	for(int i=0; i<3; i++) { 		for(int j=0; j<3; j++) { 	    b[j][i]=a[i][j]; 		} 	} 	for(int i=0; i<3; i++) { 		for(int j=0; j<3; j++) { 			cout<<b[i][j]<<" "; 		} 		cout<<endl; 	} } int main() { 	int map[3][3]; 	for(int i=0; i<3; i++) { 		for(int j=0; j<3; j++) { 			cin>>map[i][j]; 		} 	} 	fun(map); 	return 0; }
当当当 4年前 回复TA
@煮酒老麦 膜拜
煮酒老麦 4年前 回复TA
#include<stdio.h>

int main() {
	int a,b,c,d,e,f,g,h,i;
	scanf("%d %d %d",&a,&b,&c);
	scanf("%d %d %d",&d,&e,&f);
	scanf("%d %d %d",&g,&h,&i);
	printf("%d %d %d\n",a,d,g);
	printf("%d %d %d\n",b,e,h);
	printf("%d %d %d",c,f,i);
	return 0;
}
回归本质哈哈哈
月缺 4年前 回复TA
@加油鸭 @2452311021 这么说的话输出的数组还是不变啊,结果为什么会错呢
chenxizhan 5年前 回复TA
@chenxizhan scanf("%d ",&b [i][j]); 改成             scanf("%d",&b [i][j]);
chenxizhan 5年前 回复TA
@chenxizhan 把 scanf("%d ") 后面的空格去掉就行了
加油鸭 5年前 回复TA
@加油鸭 因为等i==j的时候 数组中元素的位置没有变动 比如arr[0][0]一开始是1 变化后还是1 arr[1][1]=5也是一样 arr[2][2]同理  抱歉 抱歉 好久没上这个网站了了
李哟哟 5年前 回复TA
@加油鸭 您好,我想问一下,我代码和您的只差一句if (i == j) break;  就是错的,我想不太明白为什么,您可以解释一下吗
Ronin 5年前 回复TA
@chenxizhan #include<iostream> #include<cstdio> using namespace std; int main() { 	int b[3][3],i,j; 	for(i=0;i<3;i++) 	{ 		for(j=0;j<3;j++) 		{ 			scanf("%d ",&b [i][j]);	 		}	 	} 	for(int i=0;i<3;i++) 	{ 		for(j=0;j<3;j++) 		{ 			printf("%d\t",b[j][i]);	 		} 		printf("\n");	 	}	 	return 0; } 为啥输入十个数