此代码仅在系统具有唯一解决方案时有效。当没有解决方案或无限多的解决方案时,它应该打印"没有独特的解决方案。"但下面的代码打印" nan"或" inf"。我怎么能这样做?
d
g0 g1
1 A A
2 B B
3 C C
4 D D
5 C E
6 C F
答案 0 :(得分:1)
在打印前检查数字是否有效。如果无效,请打印所需的消息。您可以按如下方式修改代码中的最后一个for循环:
for(i=1; i<=n; i++)
{
x[i]=A[i][n+1]/A[i][i];
//Nan and inf check
if((A[i][i]!=A[i][i]) || (A[i][i] ==0))
break;
else
printf("\n x%d=%0.3f\n",i,x[i]);
}
printf("Has no unique solution");
return(0);
}