c语言基础的调用函数填空问题?

只是想填个空,很简单
#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;

            }

        }

}

温馨提示:答案为网友推荐,仅供参考