|
回复:(odbo1984)急问一个问题
没太看懂你的程序,下面是C语言写的,可以参考一下
#include<iostream.h>
#include<math.h>
const int m=10;
void main()
{
int choice=1;
while(choice==1)
{
double a[m][m],b[m],e,x[m],y[m],w,se,max;
int n,i,j,N,k;
cout<<"\n请输入方程的个数:";
cin>>n;cout<<endl;
for(i=1;i<=n;i++)
{
cout<<"请输入第"<<i<<"个方程的各项系数:";
for(j=1;j<=n;j++)
cin>>a[j];
}
cout<<"\n请输入各个方程等号右边的常数项。\n";
for(i=1;i<=n;i++)
{
cin>>b;
}
cout<<"\n请输入最大迭代次数:";
cin>>N;
cout<<"\n请输入最大偏差:";
cin>>e;
for(i=1;i<=n;i++)
{
x=0;
y=x;
}
k=0;
while(k!=N)
{
k++;
for(i=1;i<=n;i++)
{
w=0;
for(j=1;j<=n;j++)
{
if(j!=i)
w=w+a[j]*y[j];
}
y=(b-w)/double(a);
}
max=fabs(x[1]-y[1]);
for(i=1;i<=n;i++)
{
se=fabs(x-y);
if(se>max)
max=se;
}
if(max<e)
{
cout<<endl;
for(i=1;i<=n;i++)
cout<<"x"<<i<<"="<<y<<endl;
break;
}
for(i=1;i<=n;i++)
{
x=y;
}
}
if(k==N)
cout<<"迭代失败!!"<<endl;
cout<<endl;
cout<<"--------------------------------------------------------------"<<endl;
cout<<endl;
cout<<" 1、继续运算。"<<endl;
cout<<" 2、结束运算,退出本程序。"<<endl;
cout<<endl;
cout<<"请输入你的选择:";
cin>>choice;
}
} |
|