Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: программа работающаю с динамической матрицей(память выделяется динамически)
 
 автор: Flare   (09.10.2009 в 20:18)   письмо автору
 
 

В матрице найти минимальный элемент. Разделить элементы строки, в которой он находится, на найденный минимальный элемент.
обязательно чтение матрицы из внешнего файла, при этом память под нее должна выделяться динамически

помогите кто-нибудь((

  Ответить  
 
 автор: Flare   (09.10.2009 в 20:24)   письмо автору
 
   для: 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();
}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования