蒟蒻求助!输出奇怪字符?
查看原帖
蒟蒻求助!输出奇怪字符?
936100
HowToCarry楼主2023/9/2 22:43

数据

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 

会输出

nan
nan
nan
nan
nan
nan
nan
nan
nan
nan

求助大佬

#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;
}

2023/9/2 22:43
加载中...