Why Runtime Error?

P2455 [SDOI2006] 线性方程组

AffineRing @ 2021-10-30 15:13:01

不知道哪里RE了,但是除了#4,#8,#9,#10之外所有点都RE。

哪里出问题了?

#include<bits/stdc++.h>
using namespace std;
#define ll long long
inline int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+ch-'0',ch=getchar();
    return x*f;
}
const int N=110;
double c[N][N],b[N];int n;
int main(){
    n=read();
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++)scanf("%lf",&c[i][j]);
        scanf("%lf",&b[i]);
    }
    for(int i=1;i<=n;i++){
        for(int j=i;j<=n;j++)
            if(fabs(c[j][i])>1e-8){
                for(int k=1;k<=n;k++)swap(c[i][k],c[j][k]);
                swap(b[i],b[j]);
            }
        if(fabs(c[i][i])<1e-8)continue;
        for(int j=1;j<=n;j++){
            if(i==j)continue;
            double rate=c[j][i]/c[i][i];
            for(int k=i;k<=n;k++)c[j][k]-=c[i][k]*rate;
            b[j]-=b[i]*rate;
        }
    }
    for(int i=1;i<=n;i++){
        bool check=0;
        for(int j=1;j<=n;j++)
            if(fabs(c[i][j])>1e-8){check=1;break;}
        if(!check&&fabs(b[i])>1e-8){printf("%d\n",-1);return 0;}
        if(!check&&fabs(b[i])<1e-8){printf("%d\n",0);return 0;}
    }
    for(int i=1;i<=n;i++)
        printf("x%d=%.2lf\n",i,b[i]/c[i][i]);
    return 9;
}

by AffineRing @ 2021-10-30 15:16:44

艹,知道了,return 9了,艹

然后,判-1应该全部判掉再判0


by Rainy7 @ 2021-10-30 15:25:50

return 9; 蚌埠住了


|