C中的高斯消元

时间:2016-04-08 20:36:33

标签: c

此代码仅在系统具有唯一解决方案时有效。当没有解决方案或无限多的解决方案时,它应该打印"没有独特的解决方案。"但下面的代码打印" nan"或" inf"。我怎么能这样做?

d
    g0 g1
1    A  A
2    B  B
3    C  C
4    D  D
5    C  E
6    C  F

1 个答案:

答案 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);
}

Handling Infinity and Nan