fork download
  1. #include <stdio.h>
  2. #define N 2
  3.  
  4. void Gaussian_elimination(double a[N][N+1]){
  5. int i,j,k;
  6. double p,d;
  7.  
  8. for (i = 0; i < N; i++) {
  9. p = a[i][i];
  10. for (j = 0; j < (N + 1); j++) {
  11. a[i][j] = a[i][j] / p;
  12. }
  13. for (j = 0; j < N; j++) {
  14. if (i != j) {
  15. d = a[j][i];
  16. for (k = i; k < (N + 1); k++) {
  17. a[j][k] = a[j][k] - d * a[i][k];
  18. }
  19. }
  20. }
  21. }
  22. }
  23.  
  24. int main(void)
  25. {
  26. // 連立方程式を表す係数行列
  27. // x + y = 300
  28. // 0.08x + 0.05y = 21
  29. double a[N][N + 1] = {
  30. {1.0, 1.0, 300},
  31. {0.08, 0.05, 21}
  32. };
  33. char b[2][4] = {"x", "y"};
  34. int i;
  35.  
  36. // ガウスの消去法を使って連立方程式を解く
  37. Gaussian_elimination(a);
  38.  
  39. // 結果を表示
  40. for (i = 0; i < N; i++) {
  41. printf("%s = %f\n", b[i], a[i][N]);
  42. }
  43.  
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
x = 200.000000
y = 100.000000