Другие языки программирования и технологии

язык си. задача по языку Си. Задаются коэффициенты системы из трёх линейных уравнений. Найти корни.

Aleksei Novikov
Aleksei Novikov
312
#include <stdio.h>
#include <locale.h>
#include <conio.h>
void slau_3(double [][3], double *, unsigned);
double determinant(double [][3]);
int main () {
    double matrix[3][3], vector[3];
    unsigned n, k;
    setlocale(LC_CTYPE, "Russian_Russia.1251");
    for (n = 0; n < 3; n++) {
        k = n + 1;
        printf("Введите через пробел: a%d%dx1 + a%d%dx2 + a%d%dx3 = b%d : ", k, k, k, k + 1, k, k + 2, k);
        scanf_s("%Lf%Lf%Lf%Lf", &matrix[n][0], &matrix[n][1], &matrix[n][2], &vector[n]);
    }
    slau_3(matrix, vector, 3);
    _getch();
    return 0;
}
void slau_3(double a[][3], double * b, unsigned n) {
    double det[4], temp[3][3], x1, x2, x3;
    unsigned k, r, c;
    for (k = 0; k <= n; k++) {
        if (!k)
            for (r = 0; r < n; r++)
                for (c = 0; c < n; c++)
                    temp[r][c] = a[r][c];
        else
            for (c = 0; c < n; c++)
                for (r = 0; r < n; r++)
                    if (k - 1 == c) temp[r][c] = b[r];
                    else temp[r][c] = a[r][c];
        det[k] = determinant(temp);
    }
    if (det[0]) {
        x1 = det[1] / det[0];
        x2 = det[2] / det[0];
        x3 = det[3] / det[0];
        printf("\nx1 = %Lf\nx2 = %Lf\nx3 = %Lf\n", x1, x2, x3);
    } else printf("\n\aМного корней, система несовместная! ");
}
double determinant(double a[][3]) {
    return a[0][0] * a[1][1] * a[2][2] +
           a[0][1] * a[1][2] * a[2][0] +
           a[1][0] * a[2][1] * a[0][2] -
           a[0][2] * a[1][1] * a[2][0] -
           a[0][1] * a[1][0] * a[2][2] -
           a[1][2] * a[2][1] * a[0][0];
}
ЖА
Жанболат Арманов
65 813
Лучший ответ
И где твоя программа? С чем помогать ?