【C系列5.13】指针专题之矩阵转置(hznuoj刷题)
Description
Alex最近又喜欢上了矩阵转置游戏,这个游戏非常简单,将一个3*3的矩阵转置即可。现在,请你用指针写一个程序来实现矩阵转置功能。
Input
输入包含多组测试数据,对于每组测试数据,包含一个3*3的矩阵,每个元素的值都在0到9之间。
Output
一个转置后的3*3的矩阵。每组测试数据之间用一个空行隔开。
Samples
input
1 2 3
4 5 6
7 8 9
output
1 4 7
2 5 8
3 6 9
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #include <stdio.h> #pragma warning (disable:4996) // 函数声明 void transposeMatrix( int matrix[3][3]); int main() { // 读取测试组数 for (;1;) { int matrix[3][3]; // 读取矩阵元素 for ( int i = 0; i < 3; ++i) { for ( int j = 0; j < 3; ++j) { if (scanf( "%d" , &matrix[i][j]) == EOF) return 0; } } // 调用函数进行矩阵转置 transposeMatrix(matrix); // 输出转置后的矩阵 for ( int i = 0; i < 3; ++i) { for ( int j = 0; j < 3; ++j) { printf( "%d" , matrix[i][j]); // 输出空格或换行 if (j < 2) { printf( " " ); } else { printf( "\n" ); } } } // 输出空行,分隔测试数据 printf( "\n" ); } return 0; } // 函数定义:矩阵转置 void transposeMatrix( int matrix[3][3]) { int temp; for ( int i = 0; i < 3; ++i) { for ( int j = i + 1; j < 3; ++j) { // 交换元素 temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了