Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int n, i, j, k, h;
- float a[100][100], S, piv, aux;
- int main()
- {
- scanf("%d", &n);
- for (i = 1; i <= n; i++)
- for (j = 1; j <= n + 1; j++)
- scanf("%f", &a[i][j]);
- if (a[1][1] == 0)
- {
- i = 1;
- do
- {
- i++;
- } while (a[i][1] == 0 && i <= n);
- if (i > n)
- {
- printf("The system does not unique solution");
- return 0;
- }
- for (j = 1; j <= n + 1; j++)
- {
- aux = a[1][j];
- a[1][j] = a[i][j];
- a[i][j] = aux;
- }
- }
- for (i = 2; i <= n; i++)
- a[1][i] = a[1][i] / a[1][1];
- for (k = 2; k <= n; k++)
- {
- i = k;
- do
- {
- S = 0;
- piv = 0;
- for (h = 1; h <= k - 1; h++)
- S = S + a[i][h] * a[h][k];
- piv = a[i][k] - S;
- i++;
- } while (piv == 0 && i <= n);
- if (piv == 0)
- {
- printf("The system does not have unique solution");
- return 0;
- }
- if (i != k + 1)
- {
- for (j = 1; j <= n + 1; j++)
- {
- aux = a[k][j];
- a[k][j] = a[i - 1][j];
- a[i - 1][j] = aux;
- }
- }
- for (i = k; i <= n; i++)
- {
- S = 0;
- for (h = 1; h <= k - 1; h++)
- S = S + a[i][h] * a[h][k];
- a[i][k] = a[i][k] - S;
- }
- for (j = k + 1; j <= n; j++)
- {
- S = 0;
- for (h = 1; h <= k - 1; h++)
- S = S + a[k][h] * a[h][k];
- a[k][j] = (a[k][j] - S) / a[k][k];
- }
- }
- for (i = 2; i <= n; i++)
- {
- S = 0;
- for (k = 1; k <= i - 1; k++)
- S = S + a[i][k] * a[k][n + 1];
- a[i][n + 1] = a[i][n + 1] - S;
- }
- a[n][n + 1] = a[n][n + 1] / a[n][n];
- for (i = n - 1; i >= 1; i--)
- {
- S = 0;
- for (j = i + 1; j <= n; j++)
- S = S + a[i][j] * a[j][n + 1];
- a[i][n + 1] = (a[i][n + 1] - S) / a[i][i];
- }
- for (i = 1; i <= n; i++)
- printf("x%d = %f ", i, a[i][n + 1]);
- printf("\n");
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment