C语言程序设计 fun函数的功能是,计算二维数组主对角线元素的值和。

如输出123456789输出1 2 3
4 5 6
7 8 9

s=30

① 自定义矩阵阶数,函数间传递数组

#include <stdio.h>
main()
{
int i,j,n,s;
printf("请输入矩阵阶数:");
scanf("%d",&n);
int fun(int n,int a[][n]);
int a[n][n];
printf("请输入矩阵元素:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
s=fun(n,a);
printf("该矩阵主对角线和为:%d\n",s);
}

int fun(int n,int a[][n])
{
int s=0,i;
for(i=0;i<n;i++)
s+=a[i][i];
return s;
}

② 自定义矩阵阶数,函数间传递指针

#include <stdio.h>
main()
{
int i,j,n,s;
printf("请输入矩阵阶数:");
scanf("%d",&n);
int fun(int n,int (*a)[n]);
int a[n][n];
printf("请输入矩阵元素:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
s=fun(n,a);
printf("该矩阵主对角线和为:%d\n",s);
}

int fun(int n,int (*a)[n])
{
int s=0,i;
for(i=0;i<n;i++)
s+=a[i][i];
return s;
}

③ 规定函数阶数,函数间传递数组

#include <stdio.h>
#define N 4
int fun(int a[][N]);
main()
{
int a[N][N],i,j,s;
printf("矩阵阶数:%d\n",N);
printf("请输入矩阵元素:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
s=fun(a);
printf("该矩阵主对角线和为:%d\n",s);
}

int fun(int a[][N])
{
int s=0,i;
for(i=0;i<N;i++)
s+=a[i][i];
return s;
}

④ 规定函数阶数,函数间传递指针

#include <stdio.h>
#define N 4
int fun(int (*a)[]);
main()
{
int a[N][N],i,j,s;
printf("矩阵阶数:%d\n",N);
printf("请输入矩阵元素:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
s=fun(a);
printf("该矩阵主对角线和为:%d\n",s);
}

int fun(int (*a)[N])
{
int s=0,i;
for(i=0;i<N;i++)
s+=a[i][i];
return s;
}

以4阶为例,运行结果为:

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