#include   <stdio.h>   
  #include   <math.h>
  #include   <iostream.h>
  #include   <conio.h>
  main()
{  
    int k=0,i,j,m;
    double a[3][3],b[3],x[3][1000],p,p1,p2,p0;
    clrscr();
    printf("Please input the coefficients :a11..a33 and b1 b2 b3\nWarning:The value of aii can't be zero!\n");
    for(i=0;i<3;i++)
     {for(j=0;j<3;j++)
       scanf("%lf",&a[i][j]);
     }
    for(i=0;i<3;i++)
       scanf("%lf\n",&b[i]);
     printf("Please input the start value of x1[0],x2[0],x3[0]\n");
     for(m=0;m<3;m++)
     scanf("%lf\n",&x[m][0]);
      
   do
     { x[0][k+1]=(b[0]-a[0][1]*x[1][k]-a[0][2]*x[2][k])/a[0][0];
       x[1][k+1]=(b[1]-a[1][0]*x[0][k]-a[1][2]*x[2][k])/a[1][1];
       x[2][k+1]=(b[2]-a[2][0]*x[0][k]-a[2][1]*x[1][k])/a[2][2];
       p0=x[0][k+1]-x[0][k];
       p1=x[1][k+1]-x[1][k];
       p2=x[2][k+1]-x[2][k];
       if(p0>p1&&p0>p2)
         p=p0;
       else
         p=(p1>p2?p1:p2);k++;
      }while (p>0.00001);
   printf("x1=%lf\n",x[0][k+1]);
   printf("x2=%lf\n",x[1][k+1]);
   printf("x3=%lf\n",x[2][k+1]);
   printf("The Jaxobi iterative number is:%d\n",k+1);
   return 0;
}
    
说明:本方程是用雅克比迭代法解决三元一次方程的一个小程序。
     有几个点可能有点问题: "x[3][1000]" 语言对数组的大小有规定么?
                           在输入方程组系数6个和b 3个之后本来要求输入初始值3个,但是程序却出现不只6+3+3个数要输入。
   高手指教!
   

 
											





 
	     
											 
										
					
	