提供一个将二维数组旋转的C函数
时间: 2023-12-22 09:05:31 浏览: 43
以下是一个将n x n的二维数组顺时针旋转90度的C函数:
```c
void rotate(int matrix[][n], int n) {
// 先进行矩阵转置
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
// 再进行行反转
for (int i = 0; i < n; i++) {
for (int j = 0; j < n / 2; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][n - 1 - j];
matrix[i][n - 1 - j] = temp;
}
}
}
```
该函数先将矩阵进行转置,然后再对每行进行反转。这样可以实现顺时针旋转90度的效果。
相关问题
c++用一个函数将一个二维数组旋转90度
可以使用以下函数将一个二维数组旋转90度:
```c++
void rotateArray(int arr[][N], int n) {
// 先进行转置操作
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
int temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
// 再进行列交换操作
for (int i = 0; i < n; i++) {
for (int j = 0; j < n / 2; j++) {
int temp = arr[i][j];
arr[i][j] = arr[i][n - j - 1];
arr[i][n - j - 1] = temp;
}
}
}
```
其中,`arr`表示要旋转的二维数组,`n`表示数组的大小(假设为`N*N`)。首先进行转置操作,即将数组中的行和列互换,然后再进行列交换操作,即将每一列的元素按照中心轴进行交换。最终得到的数组就是旋转后的结果。
提供一个将二维数组m x n旋转90,180,270的C函数
以下是一个将m x n的二维数组旋转90度、180度和270度的C函数:
```c
void rotate(int matrix[][n], int m, int n, int degree) {
int temp[m][n];
switch (degree) {
case 90:
// 顺时针旋转90度
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
temp[j][m - 1 - i] = matrix[i][j];
}
}
break;
case 180:
// 顺时针旋转180度
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
temp[m - 1 - i][n - 1 - j] = matrix[i][j];
}
}
break;
case 270:
// 顺时针旋转270度
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
temp[n - 1 - j][i] = matrix[i][j];
}
}
break;
default:
// 错误的角度
printf("Invalid degree\n");
return;
}
// 将旋转后的数组复制回原数组
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = temp[i][j];
}
}
}
```
该函数接收旋转角度作为参数,根据角度进行不同的处理,最后将结果复制回原数组。注意,该函数只支持90度、180度和270度的旋转。如果需要支持其他角度的旋转,需要修改函数实现。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)