程序如下public class Gaosi 
{
       static int  n=9;
       float array1 [];
        float  array2 [];
        float array [][];
       public static void exchange(float array1[n],float array2[n])
       {
           float t;
           int i;
           for(i=0;i <=n-1;i++) 
           { 
           t=array1[i];array1[i]=array2[i];array2[i]=t;} 
           }        }        public static void xiaoyuan(float array1[][],int t)
        {
            int i,j;
            for(i=t+1;i <=n-1;i++)
            { 
                if(array1[t][t]==0) 
                continue; 
                else 
                for(j=t;j <=n;j++) 
                { 
                array1[i][j]=array1[i][j]-array1[t][j]*array1[i][t]/array1[t][t]; 
                } 
                }         }
        
        
        
        public static void putarray(float array[][])
        {
            int i,j; 
            for(i=0;i <=n-1;i++){ 
            for(j=0;j <=n;j++)
            {
            System.out.println(array[i][j]);    
            }
        }
            
            
            public static void main(String args[])
            {
                int i,j,k; 
                float sum=0; 
                float X[]=new float[]{0}; 
                float matrix[][]= 
                { 
                {31,-13,0,0,0,-10,0,0,0,-15}, 
                {-13,35,-9,0,-11,0,0,0,0,27}, 
                {0,-9,31,-10,0,0,0,0,0,-23}, 
                {0,0,-10,79,-30,0,0,0,-9,0}, 
                };  
                 for(i=0;i<n-1;i++)
                 {
                     k=i;
                     for(j=i;j <=n-1;j++) 
                     {
                         if(Math.abs(matrix[j][i])>Math.abs(matrix[k][k]))
                             k=j;
                     }
                     
                     if(i!=k) 
                     exchange(matrix[i],matrix[k]);              
                     xiaoyuan(matrix,i); 
                 }
                 putarray(matrix);
                 for(i=n-1;i>=0;i--) 
                 {                            //回代过程; 
                 for(j=n-1;j>=i;j--) 
                 { 
                 sum=sum+X[j]*matrix[i][j]; 
                 } 
                 X[i]=(matrix[i][n]-sum)/matrix[i][i]; 
                 sum=0;} 
                 for(i=0;i <=n-1;i++) 
                 { 
                 System.out.println("x["+i+"]="+x[i]+);
                 }             }        
}

解决方案 »

  1.   

    好像不是一点小错误吧,感觉仅仅编译方面就很多错误,没看具体的算法。列举几个
    public static void exchange(float array1[n],float array2[n]) 虚参不用n,去掉
     t=array1[i];array1[i]=array2[i];array2[i]=t;} 后面多了个}
    在main中定义的matrix是[4][10]的,在做循环时是当作[10][10]来用的。
    System.out.println("x["+i+"]="+x[i]+);x应该是X,没有后面的+号
      

  2.   

    算法问题,我就不太懂啦。算法的基本实现可以看相应的算法书。
    在这里可以问一下java的代码技术问题。
      

  3.   

    if(array1[t][t]==0) 
      continue; 
    else 代码虽然是对的,但也要注意格式规范.数组参数也不对 如 int i[n];之类应该为 int[] i;
    建议楼主把JAVA基础再看看.