Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: Flare   (09.10.2009 в 20:24)
#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();
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: