Привести матрицу к треугольному виду
Написала вот это
Код:
#include <iostream>
#include <conio.h>
using namespace std;
const int m=3;
void scan( float (*a)[m], int n);
void print(float (*a)[m], int n);
void gauss(float (*a)[m], int n);
void scan( float (*a)[m], int n)
{
for (int i=0;i<n;i++)
{ for (int j=0;j<m;j++)
cin>>a[i][j];
cout<<"\n";}
}
void print(float (*a)[m],int n)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";}
}
void gauss(float (*a)[m],int n)
{
float r;
for(int k=0;k<n;k++)
{for(int j=k+1;j<n+2;j++)
{r=a[j][k]/a[k][k];
for (int i=k;i<n+1;i++)
{a[j][i]=a[j][i]-r*a[k][i];
}
}
}
}
void main()
{ setlocale(LC_ALL,"Russian");
int n;
cout<<"Введите количество строк"<<"\n";
cin>>n;
float (*a)[m] = new float [n][m];
cout<<"Введите коэффициенты"<<"\n";
scan(a,n);
cout<<"Исходная матрица"<<"\n";
print(a,n);
gauss(a,n);
cout<<"\nТреугольный вид"<<"\n";
print(a,n);
getch();
}
#include <conio.h>
using namespace std;
const int m=3;
void scan( float (*a)[m], int n);
void print(float (*a)[m], int n);
void gauss(float (*a)[m], int n);
void scan( float (*a)[m], int n)
{
for (int i=0;i<n;i++)
{ for (int j=0;j<m;j++)
cin>>a[i][j];
cout<<"\n";}
}
void print(float (*a)[m],int n)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";}
}
void gauss(float (*a)[m],int n)
{
float r;
for(int k=0;k<n;k++)
{for(int j=k+1;j<n+2;j++)
{r=a[j][k]/a[k][k];
for (int i=k;i<n+1;i++)
{a[j][i]=a[j][i]-r*a[k][i];
}
}
}
}
void main()
{ setlocale(LC_ALL,"Russian");
int n;
cout<<"Введите количество строк"<<"\n";
cin>>n;
float (*a)[m] = new float [n][m];
cout<<"Введите коэффициенты"<<"\n";
scan(a,n);
cout<<"Исходная матрица"<<"\n";
print(a,n);
gauss(a,n);
cout<<"\nТреугольный вид"<<"\n";
print(a,n);
getch();
}
И ещё один вопросик. Можно ли как-то сделать так, чтобы вводить можно было не только кол-во строк, но и столбцов? У меня никак не получается, он постоянно просит чтобы это было константой, и возникают проблемы с массивом
Динамически создайте двумерный массив