在最后判断无解、无数解时,应注意不要写成:
for(int i=n;i>=1;--i)
if(fabs(a[i][i])<=eps){
if(fabs(a[i][n+1])>eps)return cout<<-1<<endl,0;
if(fabs(a[i][n+1])<=eps)return cout<<0<<endl,0;
}
而应当把无数解全部判完之后在判无解。
for(int i=n;i>=1;--i)if(fabs(a[i][i])<eps)if(fabs(a[i][n+1])>=eps)return cout<<-1<<endl,0;
for(int i=n;i>=1;--i)if(fabs(a[i][i])<eps)if(fabs(a[i][n+1])<eps)return cout<<0<<endl,0;
hack:
input:
3
0 0 0 2
0 0 0 0
0 0 0 0
output:
0
ans:
-1