写一个c代码解决下列问题:def rotate_matrix(matrix): n = len(matrix) # 逆时针旋转 90 度 for i in range(n): for j in range(i, n): matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j] # 反转每一行字符串 for i in range(n): matrix[i] = matrix[i][::-1] return matrix
时间: 2023-07-09 08:19:02 浏览: 77
C代码实例:逆转字符
5星 · 资源好评率100%
好的,以下是一个用 C 语言实现的代码,可以实现字符矩阵逆时针旋转 90 度的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void rotate_matrix(char **matrix, int n) {
// 逆时针旋转 90 度
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
char tmp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = tmp;
}
}
// 反转每一行字符串
for (int i = 0; i < n; i++) {
int left = 0, right = strlen(matrix[i]) - 1;
while (left < right) {
char tmp = matrix[i][left];
matrix[i][left] = matrix[i][right];
matrix[i][right] = tmp;
left++;
right--;
}
}
}
int main() {
// 举个例子
char *matrix[] = {"123", "456", "789"};
int n = sizeof(matrix) / sizeof(matrix[0]);
rotate_matrix(matrix, n);
// 输出旋转后的结果
for (int i = 0; i < n; i++) {
printf("%s\n", matrix[i]);
}
return 0;
}
```
这个例子中,我们用一个字符串数组来表示字符矩阵,每个字符串表示一个行。在函数中,我们先逆时针旋转 90 度,然后再反转每一行字符串。最后在主函数中输出旋转后的结果。
希望能帮到您!
阅读全文