#include stdiohint Resint a3 int temp; for int i = 0; i 3; ++i for int j = 0; j i ; ++j temp = a+i+j; a+i+j = a+j+i; a+j+i = temp; int main
这段代码有几个问题:
-
数组的定义应该是 int a[3][3],而不是 int *a[3][3]。后者定义的是一个三维指针数组,而不是一个二维数组。
-
在调用 Res 函数时,应该传入数组名 a,而不是 &(a[3]),因为数组名本身就是数组首元素的地址。
-
Res 函数应该有返回值,因为函数声明时指定了返回类型 int。
修正后的代码如下:
#include "stdio.h"
void Res(int a[3][3]) { int temp; for (int i = 0; i < 3; ++i) { for (int j = 0; j < i ; ++j) { temp = a[i][j]; a[i][j] = a[j][i]; a[j][i] = temp; } } }
int main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; Res(a); for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { printf("%d ", a[i][j]); } printf("\n"); } return 0; }
原文地址: https://www.cveoy.top/t/topic/bTaK 著作权归作者所有。请勿转载和采集!