最小2乗法のプログラムを作り途中なのですが、
下のエラーのコメントをしている部分で、
どうしてもエラーが出て成功しません。
全くどこが悪いのかわかりません。
多次元配列のとり方がまちがってるのでしょうか?
ご教授お願い致します。
#include <stdio.h>
#include <stdlib.h>
main()
{
int i,j,k,n,m,row,column,x,y;
double t,u, det;
double **a,*d;

printf("データセットの数(何セット?)=");
scanf("%d",&n);

printf("1セットのデータ数(ターゲットデータは含まない。)=");
scanf("%d",&m);

/* start_データ入力用配列確保 */
d=(double *)calloc(m+1,sizeof(double));
if(d==NULL) printf("データ入力用配列の確保に失敗\n");
/* end_データ入力用配列確保 */

row=m+1;
column=m+1;

/*start_配列a[row][column]の確保*/
a=(double **)calloc(row,sizeof(double *)); /*行(row)の確保*/
for(i=0;i<row;i++) a[i]=(double *)calloc(column,sizeof(double)); /*列(column)の確保*/
/*end_配列a[row][column]の確保*/

for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%dset_data%d=",i,j);
scanf("%lf",&d[j]);
}

for(x=0;x<row;x++)
{
for(y=0;y<column;y++)
{
if(x=0 && y=0)
        a[x][y]=1;
if(x=0 && y>=1) a[x][y]+=d[y-1];    /*←(エラー)左辺値が必要*/
if(x>=1 && y=0) a[x][y]+=d[y-1];    /*←(警告)不正な代入*/
if(x>=1 && y>=1) a[x][y]+=d[y-1]*d[x-1]; /*←(エラー)左辺値が必要*/
}
}
}
free(d);
for(i=0;i<row;i++) free(a[i]);
free(a);


return(0);
}