各位:小弟有事请教啊,帮我看一下,下面是用迭代法求线性方程组的解,结果老是不正确,请高手帮看一下,问题出在哪里啊?
代码如下:import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class JacobiTest {public static void main(String args[]) throws IOException
{
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
 final int MAX=10;
 float d,e,sum;
 float A[][] = new float[10][10];
 float X[] = new float[10];
 float Y[] = new float[10];
 int n = 0,N,i,k,j;
 System.out.println("输入迭代次数N=");
 N = Integer.parseInt(reader.readLine()); 
 System.out.println("输入方程元数n=");
 n = Integer.parseInt(reader.readLine()); 
 for(i=1;i<=n;i++)// 矩阵输入A:b
 {
  for(j=1;j<=n;j++)
  {
   System.out.println("a["+ i +"][" + j + "]=");
   
   A[i][j] = Float.parseFloat(reader.readLine()); 
  }
  System.out.println("b["+i+"]=");
  A[i][j] = Float.parseFloat(reader.readLine());
  System.out.println("=========>A["+i+"][" + j + "]=" + A[i][j]);
 }
 System.out.println("输入误差限e=");
 e = Float.parseFloat(reader.readLine());
 System.out.println("=========给X赋初值==========");
 for(i=1;i<=n;i++)// 给X赋初值
 {
 System.out.println("X[" + i + "]=");
 //String aa = reader.readLine();
 X[i] = Float.parseFloat(reader.readLine());
 }
 for(i=1;i<=n;i++)// 判断主对角线元素是否为0
 {
  if(A[i][i]==0)
  {
  System.out.println("算法失败!");
  System.exit(1);
  }
 }
 for(k=1;;k++)
 {
  for(i=1,d=0;i<=n;i++)
  {
   sum=0;
   for(j=1;j<=n;j++)
   {
    if(j==i)continue;
    sum -=(A[i][j]*X[j]);
   }
   Y[i]=(A[i][n+1]+sum)/A[i][i];
   
   float d1=(float)Math.abs(Y[i]-X[i]);
   if(d1>d){
   d=d1;
   }
  }   if(d<e)
  {
   for(i=1;i<=n;i++)
   System.out.println(Y[i] + "   ");
   System.exit(1);
  }
  if(k==N)
  {
   System.out.println("迭代失败!");
   System.exit(1);
  }
  for(i=1;i<=n;i++)
   X[i]=Y[i];
 }
}
}