将reshape转化成c语言,输入三维数组,旋转90度 180度 270度
时间: 2024-04-30 17:20:20 浏览: 117
Python reshape的用法及多个二维数组合并为三维数组的实例
以下是将reshape转化为C语言代码,用于将三维数组旋转90度、180度、270度:
```c
#include <stdio.h>
// 三维数组旋转90度
void rotate_90(int arr[][3][3], int n) {
int temp[n][n][n];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
for(int k = 0; k < n; k++) {
temp[i][j][k] = arr[n-k-1][i][j];
}
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
for(int k = 0; k < n; k++) {
arr[i][j][k] = temp[i][j][k];
}
}
}
}
// 三维数组旋转180度
void rotate_180(int arr[][3][3], int n) {
int temp[n][n][n];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
for(int k = 0; k < n; k++) {
temp[i][j][k] = arr[n-i-1][n-j-1][n-k-1];
}
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
for(int k = 0; k < n; k++) {
arr[i][j][k] = temp[i][j][k];
}
}
}
}
// 三维数组旋转270度
void rotate_270(int arr[][3][3], int n) {
int temp[n][n][n];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
for(int k = 0; k < n; k++) {
temp[i][j][k] = arr[k][n-j-1][i];
}
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
for(int k = 0; k < n; k++) {
arr[i][j][k] = temp[i][j][k];
}
}
}
}
int main() {
int arr[3][3][3] = {
{{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}}
};
printf("原数组:\n");
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
for(int k = 0; k < 3; k++) {
printf("%d ", arr[i][j][k]);
}
printf("\n");
}
printf("\n");
}
rotate_90(arr, 3);
printf("旋转90度:\n");
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
for(int k = 0; k < 3; k++) {
printf("%d ", arr[i][j][k]);
}
printf("\n");
}
printf("\n");
}
rotate_180(arr, 3);
printf("旋转180度:\n");
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
for(int k = 0; k < 3; k++) {
printf("%d ", arr[i][j][k]);
}
printf("\n");
}
printf("\n");
}
rotate_270(arr, 3);
printf("旋转270度:\n");
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
for(int k = 0; k < 3; k++) {
printf("%d ", arr[i][j][k]);
}
printf("\n");
}
printf("\n");
}
return 0;
}
```
这个程序将一个 $3\times3\times3$ 的三维数组进行了旋转。函数 `rotate_90` 将数组旋转90度,函数 `rotate_180` 将数组旋转180度,函数 `rotate_270` 将数组旋转270度。每个函数都使用了一个临时数组来保存旋转后的结果,然后将结果复制回原始数组。程序输出了原始数组和旋转后的数组。
阅读全文