//連立方程式を解く void linearEquations (int n,double x[/url],double c[/url][10],double b[/url]){ int k,j,i; for(j=1;j<=n;j++){ c[j][n+1]=b[j]; } //前進計算(上三角化、対角要素は1) for(j=1;j<=n;j++){ for(k=j+1;k<=n+1;k++){ c[j][k]/=c[j][j]; } c[j][j]=1; for(i=j+1;i<=n;i++){ for(k=j+1;k<=n+1;k++){ c[k]-=c[j]*c[j][k]; } c[j]=0; } } //後退計算(係数行列を単位行列化) for(j=n;j>0;j--){ for(i=1;i<j;i++){ for(k=j+1;k<=n+1;k++){ c[k]-=c[j]*c[j][k]; } c[j]=0; } } for(j=1;j<=n;j++){ x[j]=c[j][n+1]; } }
このプログラムの9行目でc[j][j]が0になった場合は、c[j]が0でないようなi行(j<i<=n)を見つけて、j行とi行を入れ替える、という操作を入れたいのですが、どのようにすればよいのでしょうか??初心者でとても申し訳ないのですが、コメントをお願いします。