Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //VS
- //Wersja poprawiona
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main()
- {
- int k, r, n;
- cout << "Podaj liczbe rownan: ";
- cin >> r;
- k = r + 1;
- n = k - 1;
- double **a = new double *[r];
- for (int i = 0; i < r; ++i)
- {
- a[i] = new double[k];
- for (int j = 0; j < k; ++j)
- {
- cout << "A[" << i + 1 << "," << j + 1 << "]= ";
- cin >> a[i][j];
- }
- cout << "\n";
- }
- for (k = 0; k < n; k++)
- {
- double max = a[k][k];
- r = k;
- for (int i = k; i < n; i++)
- {
- if (abs(a[i][k]) > max)
- {
- max = abs(a[i][k]);
- r = i;
- }
- }
- if (fabs(max) <1E-20)
- {
- cout << "Macierz ukladu osobliwa" << endl;
- break;
- }
- for (int j = k; j < n + 1; j++)
- {
- double tmp = a[k][j];
- a[k][j] = a[r][j];
- a[r][j] = tmp;
- }
- double p = a[k][k];
- for (int j = k; j < n + 1; j++)
- {
- double tmp = a[k][j] / p;
- a[k][j] = tmp;
- }
- for (int i = 0; i < n; i++)
- {
- if (i != k)
- {
- double g = a[i][k];
- for (int j = k; j < n + 1; j++)
- {
- a[i][j] -= (g * a[k][j]);
- }
- }
- }
- }
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n + 1; j++)
- cout << a[i][j] << "\t";
- cout << endl;
- }
- int x=0;
- cin >> x;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement