Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- #include <stdio.h>
- #include <stdlib.h>
- using namespace std;
- int main()
- {
- int n, k=0;
- cin >> n;
- double a[n][n + 1];
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n+1; j++)
- cin >> a[i][j];
- for (k; k < n-1; k++) //гуляем по алгоритму n-1 раз
- {
- int max_row = k;
- double max_collumn_value = a[k][k];
- for (int i = k; i <= n-1; i++)//ищем максимальное по модулю значением
- {
- if (max_collumn_value < fabs(a[i][k])) {
- max_collumn_value = a[i][k];
- max_row = i;
- }
- }
- for (int i = 0; i < n+1; i++)//обмен местами элемента k строки и строки с максимальным модулем
- {
- int reserved = a[k][i];
- a[k][i] = a[max_row][i];
- a[max_row][i] = reserved;
- }
- for (int i = 0; i < n+1; i++)//делим элементы строки k на a[k][k]
- {
- a[k][i] = (double)a[k][i]/(double)a[k][k];
- }
- for (int i = 0; i < n; i++)
- {
- if (i != k)
- for (int j = 0; j < n + 1; j++)
- {
- a[i][j] = a[i][j]-a[k][j]*a[i][k];
- }
- }
- }
- for (int i = 0; i < n; i++){
- cout.setf(ios::fixed); // вывод в фиксированном формате
- cout.precision(4); // вывод до 6 знака после точки, включительно
- cout << a[i][n] << endl;
- }
- }
Add Comment
Please, Sign In to add comment