只是想填个空,很简单
#include<stdio.h>
int main()
{void fun( int a);
int a[3][3]={{0,1,2},{3,4,5},{6,7,8}};
for(int i=0;i<3;i++)
{for(int j=0;j<3;j++)
printf("%d ",a[ ][ ]);
printf("\n");
}
return 0;
}
void fun(int a[3][3])
{
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{if(i<j)
{int tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
我填了i和j但是没运行出来,不知道哪里出错了
1. void fun(int a); 这里函数声明的地方要改为 void fun(int a[3][3]);
2. void fun(int a[3][3])函数中,最后少了两个右大括号}
3. 空的地方a[][]填a[i][j]是没错的
另外虽然声明和定义了fun函数,作用是沿对角线翻转二维数组,即转置
但是上面的代码中却没有调用fun,调用fun函数后的代码和运行结果如下:
改动的地方见注释,输出正确,望采纳~
附源码:
#include<stdio.h>
int main() {
void fun(int a[3][3]); // 这里函数声明处a的行列数值要填上
int a[3][3] = {{0,1,2},{3,4,5},{6,7,8}};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++)
printf("%d ", a[i][j]);
printf("\n");
}
fun(a); // 这里调用fun函数,沿对角线翻转二维数组a
printf("翻转后:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}
void fun(int a[3][3]) {
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++) {
if (i < j) {
int tmp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = tmp;
}
}
}