c语言 二维数组旋转90度 指针输入指针输出
时间: 2023-11-02 15:10:27 浏览: 86
可以使用以下代码实现二维数组旋转90度并且使用指针输入和指针输出:
```c
#include <stdio.h>
#define N 3
void rotate(int (*a)[N], int (*b)[N]) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
b[j][N-i-1] = a[i][j];
}
}
}
int main() {
int a[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int b[N][N] = {{0}};
rotate(a, b);
printf("Original array:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
printf("Rotated array:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}
```
这里的 `rotate` 函数使用了两个指针参数 `a` 和 `b`,分别表示输入的原始数组和输出的旋转数组。在函数内部,我们使用两个嵌套的循环来遍历原始数组的每个元素,然后将其旋转后存储到输出数组中。最后,在 `main` 函数中,我们定义了两个二维数组 `a` 和 `b`,然后调用 `rotate` 函数来旋转 `a` 数组,并将结果存储到 `b` 数组中,最后输出原始数组和旋转数组。
阅读全文