Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++]Динамическая память


Автор: JediKolyas 15.5.2007, 14:16
Код

# include <iostream.h>
# include <conio.h>
# include <stdio.h>
# include <math.h>
const n=5, m=5;
FILE*file;
FILE*f;
int i,j,imin, imax;
float q, b[m], a[n][m], max;
void vvod()
{
    file=fopen("q.qqq","r");
   for(i=0; i<n; i++)
   {for(j=0; j<m; j++)
   {fscanf(file,"%d",& a[i][j]);}
   }fclose(file);
}
void massb()
{
    for(i=0; i<n; i++)
   {max=a[i][0];
   for(j=0; j<m; j++)
   {if(max<=a[i][j])
   max=a[i][j];}
   b[i]=max;}
}
void vivod()
{
    f=fopen("qq.qqq", "w");
   for(i=0; i<n; i++)
   {printf("%d/t", b[i]);}
   fclose(f);
}
void main()
{
    vvod();
   massb();

   for(i=0; i<m; i++)
   {if(b[i]<0)
   {imin=i; break;}}
   for (i=0; i<m; i++)
   {if(b[i]>0)
   {imax=i;}}

   q=b[imin];
   b[imin]=b[imax];
   b[imax]=q;

   vivod();
   getch();
}




M
Alexeis
Модератор: используйте подсветку кода подсветка кода

Автор: Rickert 15.5.2007, 15:24
JediKolyas, во-первых помести исходник в тэги для кода, так читать удобнее, а во-вторых дай лучше задание само, а не готовый исходник: написать заново будет проще имхо

Автор: JediKolyas 15.5.2007, 16:50
Сформировать одномерный массив B[M] из максимальных элементов столбцов прямоугольной матрицы A[N][M]. В массиве B поменять местами первый отрицательный и полседний положительный элементы.
Я реализовал это через функции, а надо еще и с помощью динамической памяти. У меня не выходит.

Автор: Rickert 15.5.2007, 18:31
JediKolyas, всё, ясно, я тебе напишу прогу, только один вопрос: 
Цитата

...из максимальных элементов столбцов прямоугольной матрицы A[N][M]...

Тут сказано про формирование одного массива B и в тоже время про "из максимальных". Поясни.

Автор: Earnest 15.5.2007, 18:37
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: JackYF 15.5.2007, 18:44
Цитата(Rickert @  15.5.2007,  18:31 Найти цитируемый пост)
Тут сказано про формирование одного массива B и в тоже время про "из максимальных". Поясни.


Видать, имелось в виду - максимальный для каждого столбца отдельно. Если я правильно понял.

Автор: betal 15.5.2007, 22:02
как-как? Массивы храни просто в динамической памяти
тоесть если у тебя есть
Код

float b[m];

то будет
 
Код

float  *b = new float[m];

а если
Код

float a[n][m];

тогда
Код

float **a = new float *[n];
if (a!=NULL)
for (int i=0; i<n; i++)
{a[i] = new float[m];
if(a[i]==NULL){cout<<"exit "<<i;} 
}    

Автор: JediKolyas 16.5.2007, 09:44
Спасибо, я уже сам справился!

Автор: betal 16.5.2007, 09:47
та всегда пожалуйста!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)