int yzs3(int a[3][3],int x,int y)
{
int array[2][2],b[4],i,j,c,z=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{if(i!=x-1||j!=y-1)
b[z]=a[i][j];
z++;
}
for(i=0;i<2;i++)
for(j=0;j<2;j++)
array[i][j]=b[j+1+2*i];
c=(array[0][0]*array[1][1]-array[0][1]*array[1][0])*pow(-1,(double)(x+y));
return c;
}
这是一个求代数余子式的函数。很多变量和数组都提示这个错误。另外还有“error C2106: '=' : left operand must be l-value”
请帮我看一看。
难道是我引用函数时出了错误?下面是我截取的引用这个函数的部分程序。print函数是我自定义的一个打印函数,经测试没有问题。
case 8:printf("请问您想计算3阶方阵4阶方阵?(输入数字3或4)\n");
scanf("%d",y);
switch(y)
{case 3:printf("请输入所求行列式\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{printf("b[%d][%d]:\n",i,j);
scanf("%d",&b[i][j]);
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=yzs3(b,i,j);
print(b,3,3);
break;
还是那几个问题,有几个我之前没提到:
error C2143: syntax error : missing ';' before 'type'
error C2065: 'x' : undeclared identifier
error C2106: '=' : left operand must be l-value
error C2109: subscript requires array or pointer type
error C2106: '=' : left operand must be l-value
error C2065: 'c' : undeclared identifier
error C2018: unknown character '0xa3'
error C2059: syntax error : 'type'
warning C4098: 'print' : 'void' function returning a value
这里貌似确实有问题。但是我找您说的改过以后程序还是报错,不知为何。
追答什么错误?
本回答被提问者和网友采纳