Unaccepted 100pts求助(悬2关)
查看原帖
Unaccepted 100pts求助(悬2关)
895690
gghack_Nythix楼主2024/8/4 09:01

rt,请指出我源代码的问题,不要直接发给我你的AC代码。

#include<bits/stdc++.h>
using namespace std;
int n;
double a[1005][1005];
double check[1005];
void Consumption() {
	// int row = 1;
	for(int i = 1;i <= n;++i) {
		for(int j = i + 1;j <= n;++j) {
			if(fabs(a[j][i]) > 1e-2) {for(int k = 1;k <= n + 1;++k) swap(a[i][k],a[j][k]); break;}
		}
		if(fabs(a[i][i]) < 1e-12) continue;
		for(int j = 1;j <= n;++j) {
			if(j == i) continue;
			double rt = a[j][i] / a[i][i];
			for(int k = i;k <= n + 1;++k) a[j][k] -= a[i][k] * rt;
		}
		// ++row;
	}
	bool flag2 = 0;
	for(int i = 1;i <= n;++i){
		bool flag = 0;
		for(int j = 1;j <= n;++j){
			 if(fabs(a[i][j]) > 1e-12) flag = 1;
		}
		if(!flag){
			flag2 = 1;
			if(fabs(a[i][n + 1]) > 1e-12) return cout << "-1\n",void();
		} 
	}
	if(flag2) {
		return cout << "0\n",void();	
	}
	for(int i = 1;i <= n;++i) cout << "x" << i << "=" << fixed << setprecision(2) << double(a[i][n + 1] / a[i][i]) << '\n';
	return ;
}
signed main(){
	cin >> n;
	for(int i = 1;i <= n;++i) for(int j = 1;j <= n + 1;++j) cin >> a[i][j];
	return Consumption(),0;
}
2024/8/4 09:01
加载中...