天津网站建设哪家好,vs2017网站开发时修改的页面未变化,建立的网站百度搜索不到,制作企业网站作业题目链接 题目描述 给定一个线性方程组#xff0c;对其求解 输入输出格式 输入格式#xff1a; 第一行#xff0c;一个正整数 n 第二至 n1行#xff0c;每行 n1 个整数#xff0c;为a1, a2 .....an 和 b#xff0c;代表一组方程。 输出格式#xff1a; 共n行#xff…题目链接 题目描述 给定一个线性方程组对其求解 输入输出格式 输入格式 第一行一个正整数 n 第二至 n1行每行 n1 个整数为a1, a2 .....an 和 b代表一组方程。 输出格式 共n行每行一个数第 i行为 xi 保留2位小数 如果不存在唯一解在第一行输出No Solution. 输入输出样例 输入样例#1 3
1 3 4 5
1 4 7 3
9 3 2 2 输出样例#1 -0.97
5.18
-2.39 说明 1≤n≤100,∣ai∣≤104,∣b∣≤104 可以说是高斯消元的模板题了。 高斯消元的基本步骤大概是找最大主元--消元直到消成上三角--回代求解。 各种情况的判断方法 无解存在一行ai0(1≤i≤n)且b!0。 无数解存在一行包括系数全为0。 唯一解恰好能消成n行的上三角。 代码 1 #includecstdio2 #includecstring3 #includealgorithm4 typedef double Cu;5 int n;6 int read(){7 int ans0,f1;char cgetchar();8 while(c0||c9){if(c-)f-1;cgetchar();}9 while(c0c9){ansans*10c-48;cgetchar();}
10 return ans*f;
11 }
12 Cu fabs(Cu a){return a0?a:-a;}
13 Cu mp[105][105];
14 void swap(int k1,int k2){
15 for(int i1;in1;i){
16 Cu tmp[k1][i];
17 mp[k1][i]mp[k2][i];mp[k2][i]t;
18 }
19 }
20 void gauss(){
21 for(int k1;kn;k){
22 int maxrk;
23 for(int ik;in;i)
24 if(fabs(mp[i][k])fabs(mp[maxr][k]))maxri;//找最大主元
25 if(k!maxr)swap(k,maxr);
26 for(int ik1;in;i){
27 bool fl0;
28 Cu tempmp[i][k]/mp[k][k];
29 for(int jk;jn1;j){
30 mp[i][j]-mp[k][j]*temp;
31 if(mp[i][j])fl1;
32 }
33 if(!fl){printf(No Solution);exit(0);}//判断是否有唯一解
34 }
35 }
36 }
37 int main(){
38 nread();
39 for(int i1;in;i)
40 for(int j1;jn1;j)
41 mp[i][j]read();
42 gauss();
43 for(int in;i1;i--){
44 for(int ji1;jn;j)mp[i][n1]-mp[i][j]*mp[j][n1];//回代
45 mp[i][n1]/mp[i][i];//除以系数
46 }
47 for(int i1;in;i)printf(%.2f\n,mp[i][n1]);
48 return 0;
49 } 高斯消元模板 转载于:https://www.cnblogs.com/JKAI/p/7805978.html