社区讨论

蒟蒻求助!输出奇怪字符?

P3389【模板】高斯消元法参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo1ll4ye
此快照首次捕获于
2023/10/22 23:02
2 年前
此快照最后确认于
2023/11/02 23:45
2 年前
查看原帖
数据
CPP
10
835 954 469 753 586 32 354 441 432 976 454 
180 556 194 201 244 941 818 439 860 131 62 
503 602 160 43 859 97 568 378 467 567 898 
304 512 244 586 636 682 174 653 317 627 467 
99 861 764 501 410 457 85 121 83 23 124 
365 569 982 739 749 560 66 864 634 995 880 
883 718 720 574 797 174 194 341 823 470 148 
59 590 408 611 855 590 398 196 859 34 515 
63 937 771 356 466 687 437 242 280 473 466 
781 426 782 148 345 590 688 369 455 150 696 

会输出
CPP
nan
nan
nan
nan
nan
nan
nan
nan
nan
nan
求助大佬
CPP
#include<bits/stdc++.h>
#define ll long long
#define il inline
using namespace std;
const double eps=1e-7;
const int N=105;
double a[N][N];
double ans[N];
int n; 
il void work(){
	for(int i=1;i<=n;i++){
		if(fabs(a[i][i])<eps){
			for(int j=i+1;j<=n;j++){
				if(fabs(a[j][i])){
					for(int k=i;k<=n+1;k++){
						swap(a[i][k],a[j][k]);
					}
				} 
			}
			if(fabs(a[i][i])<eps){
				printf("No Solution");
				return;
			}
		}
		for(int j=i+1;j<=n;j++){
			if(fabs(a[j][i])<eps) continue;
			double s=a[j][i];
			for(int k=i;k<=n+1;k++){
				a[j][k]=a[j][k]*a[i][i]-s*a[i][k];
			} 
		}
	}
	for(int i=n;i>=1;i--){
		if(fabs(a[i][i])<eps){
			printf("No Solution");
			return;
		}
		ans[i]=a[i][n+1]/a[i][i];
		for(int j=i-1;j>=1;j--){
			a[j][n+1]-=a[j][i]*ans[i];
		}
	}
	for(int i=1;i<=n;i++){
		printf("%.2lf\n",ans[i]);
	}
}
int main(){
//	freopen("p3389.in","r",stdin);
//	freopen("p3389.in","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n+1;j++){
			scanf("%lf",&a[i][j]);
		}
	} 
	work();
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...