求模板代码的解释
查看原帖
求模板代码的解释
459188
zrt090604楼主2024/8/8 11:27

我写的AC代码:

#include<bits/stdc++.h>
using namespace std;
int n;
double a[105][105];
const double eps = 1e-6;
int main () {
	scanf("%d", &n);
	for(int i = 1;i <= n;++i) 
		for(int j = 1;j <= n+1;++j)
			scanf("%lf", &a[i][j]);
	for(int i = 1;i <= n;++i) {
		int mx = i;
		for(int j = i+1;j <= n;++j)
			if(fabs(a[j][i]) > fabs(a[mx][i])) mx = j;
		for(int j = 1;j <= n+1;++j) swap(a[i][j], a[mx][j]);
		if(fabs(a[i][i]) < eps) {
			puts("No Solution");
			exit(0);
		}
		for(int j = n+1; j >= 1; --j) a[i][j] /= a[i][i];
		for(int j = 1;j <= n;++j) 
			if(j != i) {
				double temp = a[j][i]/a[i][i];
				for(int k = 1;k <= n+1;++k) a[j][k] -= a[i][k]*temp;
			}
	} 
	for(int i = 1;i <= n;++i) printf("%.2f\n", a[i][n+1]);
	return 0;
}

将选定方程的主元系数变为1这一步 for (int j = n+1; j >= 1;--j)\texttt {for (int j = n+1; j >= 1;--j)},为什么j正序枚举和倒序枚举的结果不同?求大佬解释

2024/8/8 11:27
加载中...