#include<stdio.h>
#include<math.h>
#define MAX 100
double A[MAX][MAX]; //N*N矩阵
double B[MAX]; //N*1矩阵
double X[MAX]; //第x+1次迭代向量
double Y[MAX]; //第x次迭代向量
float SUM ; //迭代过程变量
double p = 1e-5; //定义精度
double dif ; //相邻迭代差
int N; //最大迭代系数
int NUM; //A的阶数
int i,j; //行、列
int k ;
int main ()
{
printf("请输入矩阵A的阶数:");
scanf("%d",&NUM);
N = NUM;
for(i = 1;i <= N;i++)
{
printf("请输入A的第%d行元素,各元素间以空格间隔:\n",i);
for(j = 1;j <= N;j++)
scanf("%lf",&A[i-1][j-1]);
}
printf("输入右端项b,各元素间以空格间隔:\n");
for(i = 1;i <= N;i++)
{
scanf("%lf",&B[i-1]);
}
print("请输入初始向量,各行元素以空格间隔;\n");
for(j = 1;j <= N;j++)
{
scanf("%lf",&Y[j-1]);
}
for(k = 1;k < N ;k++)
{
//dif = 0.0;
for(i = 1;i <= N;i++)
{
for(j = 1;j <= N;j++)
{
if(i != j)
{
SUM += A[i][j]* Y[j];
}
X[j] = (B[i] - SUM) / A[i][i];
}
dif = fabs(X[j] - Y[j]) ;
}
if( dif < p );
{
printf("%d\n",k);
}
}
for(i=0;i<N;i++)
printf("\t%lf\t\n\n",Y[j]);
return 0;
}
出现以下这个问题是怎么回事
D:\DEV C++\Project\collect2.exe[Error] ld returned 1 exit status
#include<math.h>
#define MAX 100
double A[MAX][MAX]; //N*N矩阵
double B[MAX]; //N*1矩阵
double X[MAX]; //第x+1次迭代向量
double Y[MAX]; //第x次迭代向量
float SUM ; //迭代过程变量
double p = 1e-5; //定义精度
double dif ; //相邻迭代差
int N; //最大迭代系数
int NUM; //A的阶数
int i,j; //行、列
int k ;
int main ()
{
printf("请输入矩阵A的阶数:");
scanf("%d",&NUM);
N = NUM;
for(i = 1;i <= N;i++)
{
printf("请输入A的第%d行元素,各元素间以空格间隔:\n",i);
for(j = 1;j <= N;j++)
scanf("%lf",&A[i-1][j-1]);
}
printf("输入右端项b,各元素间以空格间隔:\n");
for(i = 1;i <= N;i++)
{
scanf("%lf",&B[i-1]);
}
print("请输入初始向量,各行元素以空格间隔;\n");
for(j = 1;j <= N;j++)
{
scanf("%lf",&Y[j-1]);
}
for(k = 1;k < N ;k++)
{
//dif = 0.0;
for(i = 1;i <= N;i++)
{
for(j = 1;j <= N;j++)
{
if(i != j)
{
SUM += A[i][j]* Y[j];
}
X[j] = (B[i] - SUM) / A[i][i];
}
dif = fabs(X[j] - Y[j]) ;
}
if( dif < p );
{
printf("%d\n",k);
}
}
for(i=0;i<N;i++)
printf("\t%lf\t\n\n",Y[j]);
return 0;
}
出现以下这个问题是怎么回事
D:\DEV C++\Project\collect2.exe[Error] ld returned 1 exit status