zxg623zxg623.blog.chinaunix.net
zxg623
全部博文(213)
软件(4)
面试题目(9)
应用(10)
bootloader(1)
ARM(3)
音频(0)
vivi(2)
blob(0)
u-boot(12)
硬件(0)
usb(1)
uboot(0)
网络(1)
信号(1)
gcc(1)
程序开发(6)
进程与线程(10)
shell(1)
驱动(16)
使用技巧(13)
脚本(2)
内核(16)
2014年(1)
2013年(5)
2012年(11)
2011年(2)
2010年(8)
2009年(26)
2008年(160)
程睿
huhuwang
pzm0729
gongping
gududesi
小雅贝贝
wbshwxn
52dreame
douyaqia
Alex_Liu
lja19951
jiajia
_nosay
longchao
格伯纳
浪花小雨
cynthia
分类: C/C++
2008-04-11 00:17:40
#include <iostream>#include <string>#include <vector>#include <iomanip>using namespace std;const int n=3; //设置方程组的维float a[n][n],x[n],b[n];void input_data() //输入方程组的相关数据{ cout<<"输入方程组的系数矩阵a["<<n<<"]["<<n<<"]:"<<endl; for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>a[i][j]; cout<<"输入x[1,...,"<<n<<"]的初值:"<<endl; for(i=0;i<n;i++) cin>>x[i]; cout<<"输入b[1,...,"<<n<<"]的初值:"<<endl; for(i=0;i<n;i++) cin>>b[i]; }void output_equation() //输出方程组{ for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(j>0&&a[i][j]>0) cout<<"+"; cout<<a[i][j]<<" x["<<j+1<<"] "; } cout<<"="<<b[i]<<endl; }}void main (){ input_data(); int counter; //设置计算时迭代的次数 cout<<"输入迭代的次数"<<endl; cin>>counter; system("cls"); output_equation(); int k=0,i=0; //k用来统计迭代的次数;i用来表示x的序列 float m_num1; //m_x用来保存x的原先值;m_num1用来计算j!=i的数据之和 cout<<endl; cout<<"k\t"; for(int j=0;j<n;j++) cout<<"x["<<j+1<<"]\t\t\t"; cout<<endl; cout<<k<<"\t"; k++; cout << setiosflags(ios::fixed); //和下一句结合起来用来设定小数位的位数 cout << setprecision(10); float x_next[n]; for(j=0;j<n;j++) { cout<<x[j]<<"\t\t"; } cout<<endl; do { m_num1=0; for(j=0;j<n;j++) { if(j!=i) m_num1=m_num1+a[i][j]*x[j]; } x_next[i]=(b[i]-m_num1)/a[i][i]; if(i<n-1) i++; else { for(j=0;j<n;j++) x[j]=x_next[j]; cout<<k<<"\t"; for(j=0;j<n;j++) cout<<x[j]<<"\t\t"; cout<<endl; i=0; k++; }; }while(k<=counter);}
上一篇:说明以下关键字的作用 auto static register const volatile ext
下一篇:高斯-塞德尔迭代算法
登录 注册