只在子程序中输出before和after
时间: 2024-03-19 18:43:08 浏览: 124
Before-After-image
好的,以下是只在 `fun` 函数中输出 `before` 和 `after` 的代码实现:
```c
#include <stdio.h>
void fun(int a[][4], int n) {
int i, j;
printf("before:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
a[i][j] = n * i + j;
printf("%3d", a[i][j]);
}
printf("\n");
}
printf("after:\n");
for (i = 0; i < 4; i++) {
for (j = i + 1; j < 4; j++) {
int temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
printf("%3d", a[i][j]);
}
printf("\n");
}
}
int main() {
int n;
scanf("%d", &n);
int a[4][4];
fun(a, n);
return 0;
}
```
在该代码中,我们在 `fun` 函数中分别输出了 `before` 和 `after`。在输出 `before` 时,我们先为二维数组元素赋值,并在赋值的同时输出数组元素。在输出 `after` 时,我们对数组进行了转置,并输出了转置后的数组元素。需要注意的是,在 `main` 函数中,我们只调用了 `fun` 函数,没有再次输出数组元素。
阅读全文