编写函数,将一个矩阵逆时针旋转90度,如原矩阵为 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 旋转后为: 4 8 12 16 3 7 11 15 2 6 10 14 1 5 9 13 ---------------------- 函数原形为 : void rotate(int A[][10], int m, int n, int B[][10]); 这里, A -- 原矩阵, B -- 结果矩阵 矩阵的输入、输出也用函数实现。 编写主函数,先输入矩阵的行数和列数,然后调用函数按行输入矩阵的元素(设均为整数),调用函数转动矩阵,调用函数显示结果。矩阵的行数、列数均不超过 10。 输入格式: 第1行,两个整数。表示矩阵的行数m和列数n。 以后m行,每行n个整数,用空格隔开。 输出格式: n行,每行m个数,行中数据用一个空格隔开,末尾无空格。 输入样例: 4 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出样例: 4 8 12 16 3 7 11 15 2 6 10 14 1 5 9 13 c语言代码
时间: 2023-06-07 09:11:43 浏览: 84
```c
#include <stdio.h>
void rotate(int A[][10], int m, int n, int B[][10]) {
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
B[n-j-1][i] = A[i][j];
}
}
}
void input_matrix(int A[][10], int m, int n) {
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
scanf("%d", &A[i][j]);
}
}
}
void output_matrix(int A[][10], int m, int n) {
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
printf("%d", A[i][j]);
if(j != m-1) printf(" ");
}
printf("\n");
}
}
int main() {
int m, n;
int A[10][10], B[10][10];
scanf("%d%d", &m, &n);
input_matrix(A, m, n);
rotate(A, m, n, B);
output_matrix(B, n, m);
return 0;
}
```
阅读全文