double (*)[]类型的实参与double*类型的形参不兼容该怎么办,谢谢各位大神

#include<math.h>#include<stdio.h>doublenorm(double*x,double*y,intn){inti=0;doubles=0;... #include<math.h>
#include<stdio.h>
double norm(double *x,double *y,int n)
{
int i=0;
double s=0;
for(i=0;i<n;i++)
s=s+fabs(x[i]-y[i])*fabs(x[i]-y[i]);
return sqrt(s);
}
void Jacobi(double A[],double b[],double x0[],double x[],double w,int n1)
{
int n=100;
double ee=0.0001,s=0;
int i,j,k;
for(i=1;i<=n;i++)
{
for(j=0;j<n1;j++)
x[j]=x0[j];
for(j=0;j<n1;j++)
{
s=0;
for(k=0;k<n1;k++)
{
s=s+A[j*n1+k]*x0[k];
}
x0[j]=x[j]+w*(b[j]-s)/A[j*n1+j];
}
if(norm(x,x0,n1)<ee)
break;
}
}
int main()
{
double a[3][3]={{8,-1,1},{2,10,-1},{1,1,-5}};
double b[3]={1,4,3};
double x0[3]={0,0,0.0};
double x[3]={0,0,0},w=1.005;
int n1=3,i;
Jacobi(a,b,x0,x,w,n1);"{{{{{【【{【"""""就是这里的a有错误"""}}】】】""
for(i=0;i<n1;i++)
printf("x(%d)=%6.4f\n",i+1,x[i]);
return(0);

}
展开
 我来答
百度网友9746fdc
2012-03-09 · TA获得超过270个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:210万
展开全部
可以这样改:
void Jacobi(double *A,double b[],double x0[],double x[],double w,int n1) 这是函数声明
Jacobi(*a,b,x0,x,w,n1);这是调用函数时候的参数引用
但有一个问题,这样改以后程序还是没结果,因为main函数中i 没初始化,因此printf中的i就有问题,不知道你这i是什么意思
匿名用户
推荐于2017-12-16
展开全部
a是二维数组。
而你的参数列表是(double A[],double b[],double x0[],double x[],double w,int n1),
传递二维数组的参数列表应该是:
(double A[][3], double b[], double x0[], double x[], double w, int n1)
追问
昂    那我调调看。。。。。。谢谢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式