|
|
|
| В матрице найти минимальный элемент. Разделить элементы строки, в которой он находится, на найденный минимальный элемент.
обязательно чтение матрицы из внешнего файла, при этом память под нее должна выделяться динамически
помогите кто-нибудь(( | |
|
|
|
|
|
|
|
для: Flare
(09.10.2009 в 20:18)
| | #include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
#include <conio.h>
#include <process.h>
#include <math.h>
#include <stdlib.h>
float **m;
float min;
int k,i=0,j=0,n,imin,jmin;
ifstream f;
void main()
{
clrscr();
f.open("matrix.txt");
if(!f)
{
cerr<< "oshibka otkrytiya fayla!\n\nNazmite lyubuyu klavishu";
getch();
exit(1);
};
i=0;
while(f.peek()!=EOF)
{ //здесь считается количество строк в файле
f.ignore(100,'\n'); //и если в конце внеш файла поставить <enter>
k++; //получаем неправильное представление матрицы
} //как этого можно избежать?
f.close();f.open("matrix.txt");
while(!f.eof())
{
f >> j;i++;
}
n=(i-1)/k;
f.close();
cout<<"kolichestvo strok "<<k<<'\n'
<<"kolichestvo elementov v stroke "<<n<<'\n';
imin=0; jmin=0; min=0;
f.open("matrix.txt");
m=new float*[k];
cout<<'\t'<< "ishodnaya matrica:"<<'\n'<<'\n';
for(i=0;i<k;i++)
{
m[i]=new float[n];
for(j=0;j<n;j++)
{
f >> m[i] [j];
cout<<setw(5)<<m[i] [j];
if((m[i][j])<=m[imin][jmin])
{
imin=i; jmin=j; min=m[i][j];
};
}
cout<<'\n';
}
f.close();
for(j=0;j<n;j++)
m[imin][j]=m[imin][j]/min;
cout<<'\n'<<'\n'<<'\t'<<"novaya matrica:"<<'\n'<<'\n';
for(i=0;i<k;i++)
{
for(j=0;j<n;j++)
cout<<setw(5)<< m[i][j];
cout<<'\n';
}
for(i=0;i<k;i++)
delete[]m[i];
delete [] m;
getch();
} |
| |
|
|
|