Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2012, 10:03   #1
zink
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 36
По умолчанию Динамическая память редактирование кода.

Помогите адаптировать мою программу под условие задачи, нужно подключить динамическую память и избавиться от константы n

Даны действительные числа a1,...an. Получить квадратную матрицу порядка n:

Матрица размещается в памяти динамически с помощью операции new, значение n и числа a1,...an вводятся по запросу с клавиатуры. В конце работы программы освободить выделенную память. Вывести полученную матрицу.


Код:
#include "stdafx.h"
#include <iostream>
#include "math.h"
#include "conio.h"
#include "ctime"

using namespace std;

void main()
{
 const int n=5;
 double b[n], a[n][n];

 cout.fill(' ');
 srand(time(NULL));
 
 cout << "  Massiv b[" << n <<"] \n" << endl;
 for (int i=0;i<n;i++)
 {
	 b[i]=rand()%20;
     a[0][i]=b[i];
     cout.width(3);
	 cout << b[i] << " ";
 }
 
 for (int i=1;i<n; i++)
   {
	  for (int j=0;j<n-1; j++)
	 	a[i][j]=a[i-1][j+1];	 
		
	  a[i][n-1]=a[i-1][0];  
   }

 cout << "\n\n  Konechnii massiv a["<<n<<"x"<<n<<"]: " << endl;
 for (int i=0;i<n; i++)
   {
	 cout << "\n";
	 for (int j=0;j<n; j++)
	  {
		cout.width(4);	    
		cout << a[i][j];
	  }
   }
 
 getch();
}
Изображения
Тип файла: gif 11111111111111111.gif (2.3 Кб, 41 просмотров)
zink вне форума Ответить с цитированием
Старый 01.03.2012, 12:21   #2
AlexDark
Форумчанин
 
Аватар для AlexDark
 
Регистрация: 23.12.2011
Сообщений: 117
По умолчанию

Код:
{
cout<<"Enter N"<<endl;
cin>>n;

double *b = new double[n]; //для одномерного м-ва просто вызываем new для указателя на тип

int **a = new int*[n];//для двухмерного создаем массив указателей на указатели...
for(int i =0;i<n;i++)
a[i] = new int[n]; //и для каждой строки выполняем по принципу см.выше
......
......
getch();
delete[] b;
for(int i=0;i<n;i++)
{delete[] a[i];}
delete[] a;
}
AlexDark вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая память I.C.E Общие вопросы C/C++ 15 16.01.2011 19:27
Динамическая память Ledom Общие вопросы C/C++ 9 26.11.2010 00:07
динамическая память zhenya.ya Помощь студентам 2 24.02.2010 20:58
Динамическая память liver1981 Общие вопросы C/C++ 5 22.04.2009 09:16