c语言程序设计题求解答

程序填空,不要改变与输入输出有关的语句。从键盘上输入一个3×3的矩阵,求矩阵的主对角线和副对角线之和,要求定义和调用函数floatmatrix(float*a[3],in... 程序填空,不要改变与输入输出有关的语句。
从键盘上输入一个3×3的矩阵,求矩阵的主对角线和副对角线之和,要求定义和调用函数float matrix(float *a[3], int n),
提示,函数的形参是指针数组。
例:
输入:
8 6 12
5 9 10
7 11 5
输出:
sum=41.00

#include <stdio.h>
float matrix(float *a[3], int n);
void main()
{
int i,j;
float a[3][3],*p[3];

for(i = 0; i < 3; i++)
for(j = 0; j < 3; j++){
scanf("%f",&a[i][j]);
p[i]=a[i];
}
printf("sum=%0.2f \n", matrix(p,3));
}
float matrix(float *a[3], int n)
{
int i,j;
float sum;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i==j||i+j==n-1)
sum+=a[i][j];
}
}
return sum;
}
想知道p[i]=a[i]这一步有什么作用
展开
 我来答
庄政警
2017-12-21 · TA获得超过9916个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:871万
展开全部
float matrix(float *a[3], int n); 参数 a实际上是个float**
main里的a是个二维数组,地址类型是float(*)[3],不能直接当matrix的参数
p[i]=a[i]把a的每一行的首地址存入p[i], p的类型是float**,这样就可以用p当matrix的参数来计算了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式