Тескт программы
#include <stdafx.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <iostream>
#include "cstdlib"
void vyvod(double **a, int n){
int i, j;
for(i=0;i<n; i++){
for(j=0;j<n+1;j++){if(j!=0&&j!=n&&a[i][j-1]!=0) printf("+"); if(j==n) printf("=");
if(j<n&&a[i][j]!=0) printf("%.1lf*X%d", a[i][j], j+1); if(j==n) printf("%.1lf", a[i][j]);}
printf("\n");
}}
void vychislenie(double **a,double *x, int n){
int i, j, k=0, g, flag=1; double *b, l;setlocale(LC_ALL, "Russian");
b=(double*)malloc((n+1)*sizeof(double*));
for(k=0; k<n-1&&flag==1; k++){printf("\nПроверка коэффициентов на равенство нулю\n");
if(a[k][k]==0){ flag=0;
for(i=k; i<n; i++){
if(a[i][k]!=0){ g=i;flag=1;}}
if(flag==1){
for(j=0; j<n+1; j++){ b[j]=a[k][j]; a[k][j]=a[g][j]; a[g][j]=b[j];}}}
if(flag==1&&k<n-1){
printf("Успешно\n");getch();
for(i=k+1; i<n; i++){l=a[i][k];
for(j=k; j<n+1; j++){
a[i][j]=a[i][j]-l*a[k][j]/a[k][k];}}
printf("Вводим коэффициент m%d=ai%d/a%d%d, умножаем на строку %d,\n и вычитаем из строки с номером %d.\nПолучаем новую систему:\n", k+1, k+1, k+1, k+1, k+1, k+1);
vyvod(a, n);printf("Нажмите любую клавишу чтобы продолжить\n"); getch();
}}
if(a[n-1][n]==0&&flag==1&&a[n-1][n-1]==0) flag=2;
if(flag==1){
for(i=n-1; i>-1; i--){
for(j=i; j<n; j++){
if(j==i) x[i]=a[i][n]/a[i][i];else x[i]=x[i]-x[j]*a[i][j]/a[i][i];}}}
if(flag==2) printf("Бесконечное множество решений\n");
if(flag==0) printf("Решений нет\n");
if(flag==1){
printf("\nКорни системы:\n");
for(i=0; i<n; i++) printf("X%d=%.1lf\n", i+1, x[i]);} getch();
}
int _tmain(int argc, _TCHAR* argv[])
{int i,j,n, d;double **system, *x;setlocale(LC_ALL, "Russian");do{
printf("Введи порядок системы уравнений: n=");
scanf("%d", &n);
x=(double*)malloc(n*sizeof(double*));
system=(double**)malloc((n+1)*sizeof(double**));
for(i=0; i<n; i++)
system[i]=(double*)malloc(n*sizeof(double*));
for(i=0; i<n; i++){
for(j=0; j<n+1; j++){
if(j!=n) printf("Введите коэффициент a%d%d системы: ", i+1,j+1); else printf("Введите элемент b%d системы: ", i+1); scanf("%lf", &system[i][j]);
}}
printf("\nВаша система:\n\n");
vyvod(system, n);
for(d=0 ; d!=110 && d!=78; ){ if(d!=0){ printf("\nВаша система:\n\n");
vyvod(system, n); }
printf("\nНажмите Y, если хотите редактировать систему, или N чтобы продолжить\n"); d=getch();
if(d==121||d==89){printf("Введите номер уравнения, в котором хотите изменить элемент (i>0, i<n+1): i="); scanf("%d", &i);
printf("Введите номер этого элемента в уравнении (j>0; j<n+2): j="); scanf("%d", &j);if(i>0&&i<n+1&&j>0&&j<n+2){ i=i-1; j=j-1;
printf("Введите этот элемент: "); scanf("%lf", &system[i][j]);} else printf("\nHеверный номер\n");}
}
printf("Нажмите на любую клавишу для вычисления корней системы");
getch();
vychislenie(system,x, n);printf("Нажмите Esc, чтобы выйти из программы или любую другую клавишу, чтобы запустить занов\n");}while(getch()!=27);
return 0;
}
Челябинск