Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdlib.h"
- #include "stdio.h"
- int main(int, char**)
- {
- system("clear");
- int n = 0;
- printf("Порядок: ");
- scanf("%i", &n);
- printf("Введите коэффициенты системы и свободные члены\n");
- float** a = (float**)malloc(sizeof(void*) * n);
- float** a1 = (float**)malloc(sizeof(void*) * n);
- float* b = (float*)malloc(sizeof(float) * n);
- for (int i = 0; i < n; i++)
- {
- a[i] = (float*)malloc(sizeof(float) * n);
- a1[i] = (float*)malloc(sizeof(float) * n);
- for (int j = 0; j < n; j++)
- {
- printf("a[%i,%i]= ", i + 1, j + 1);
- scanf("%f", &a[i][j]);
- a1[i][j] = a[i][j];
- }
- printf("b[%i]= ", i + 1);
- scanf("%f", &b[i]);
- }
- for (int k = 0; k < n; k++) /* Прямой ход Гаусса */
- {
- for (int j = k + 1; j < n; j++)
- {
- const float r = a[j][k] / a[k][k];
- for (int i = k; i < n; i++)
- a[j][i] = a[j][i] - r * a[k][i];
- b[j] = b[j] - r * b[k];
- }
- }
- for (int k = n - 1; k > -1; k--) /* Обратный ход Гаусса */
- {
- float r = 0;
- for (int j = k + 1; j < n; j++)
- r += a[k][j] * b[j];
- b[k] = (b[k] - r) / a[k][k];
- }
- printf("Корни системы:\n");
- for (int i = 0; i < n; i++)
- printf("x[%i]=%f ", i + 1, b[i]);
- printf("\n\nПроверка в соответствии с матрицей B:\n");
- for (int i = 0; i < n; i++)
- {
- float b1 = 0;
- for (int j = 0; j < n; j++)
- b1 += a1[i][j] * b[j];
- printf("%f\n", b1);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment