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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2013, 13:23   #1
vik24rus
Пользователь
 
Регистрация: 14.04.2013
Сообщений: 15
По умолчанию Выделить память под динамический массив указателей

Нужно выделить память вот под такое дело. Для примера n=5 . Ничего нагуглить так и не смог
что есть :
Код:
// lab.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include "locale"
using namespace std;


int i,j;
int zna4; // ввод значение ячейки при заполнении


int *mass; // указатель на двумерный массив


int size_stolbtzy,size_stroki;

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale( LC_ALL,"Russian" );

	cout << "длину ";
	cin>> size_stroki;

	size_stolbtzy = size_stroki - 1;

	int **mass = new int* [size_stroki];
	for(int l=0; l<size_stroki;l++) 
		mass[l]=new int[size_stolbtzy];

	for (i=0; i < size_stroki ; ++i) //блок заполнения
	{
		for (j=0; j<size_stolbtzy ;++j) 
		{   
			zna4=0;//значение ячейки
			cout << " Введите значение " << i << " строки " << j << " столбца " << "\n";
			cin >> zna4;
			mass [i] [j] = zna4;			
		}
	}

	cout << '\n';
	
	for (i=0; i < size_stroki ; ++i) //вывод матрицы
	{
		for (j=0; j<size_stolbtzy ;++j) 
		{   
			cout << mass[i][j]<< ' ';
		}
		cout << '\n';
	} 
	
	cout << '\n' << "Введенная Вами матрица";

	
	delete []mass; 

	getchar();
	getchar();
	return 0;
}
Изображения
Тип файла: jpg 2013-04-14 15.58.11.jpg (45.7 Кб, 140 просмотров)
vik24rus вне форума Ответить с цитированием
Старый 14.04.2013, 14:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не пойму чем не подходит тот пример что ты выложил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2013, 14:47   #3
vik24rus
Пользователь
 
Регистрация: 14.04.2013
Сообщений: 15
По умолчанию

нужно что бы именно как на фотографии, пирамидкой память выделялась
vik24rus вне форума Ответить с цитированием
Старый 14.04.2013, 19:22   #4
Drakulov
Пользователь
 
Аватар для Drakulov
 
Регистрация: 02.04.2009
Сообщений: 40
По умолчанию

Вот что получилось (вообще нужно анализировать)
Код:
#include "stdafx.h"

#include <iostream>
#include "locale"
using namespace std;
#define vvod cout << " Введите значение " << i << " строки " << g << " столбца " << "\n";

int zna4; // ввод значение ячейки при заполнении



int size_stolbtzy,size_stroki;

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale( LC_ALL,"Russian" );

	cout << "длину ";
	cin>> size_stroki;
	if (size_stroki<=0)exit(0);

	int **mass = new int* [size_stroki];

	int n=size_stroki/2;
	bool m;
	(size_stroki % 2) == 0 ? m=1 : (m=0, n++); 
		int i=0;
		for(; i!=n; i++)
		{
			mass[i]=new int[i+1];
			for (int g=0; g<i+1; g++)
			{
			vvod;
			cin >> zna4;
			mass[i][g]=zna4;
			}
		};
		if (m==1) {
				mass[i]=new int[i];
				for (int g=0; g<i; g++)
					{
						vvod;
						cin >> zna4;
						mass[i][g]=zna4;
					}
				}; 
		int o=i-1;
		if(m==1)++i,o=i-2;
		for(; o!=0; o--)
		{
			mass[i]=new int[o];
					for (int g=0; g<o; g++)
					{
						vvod;
						cin >> zna4;
						mass[i][g]=zna4;
					}
			i++;
		};
	
	//


	cout << '\n' << "Введенная Вами матрица\n";
		i=0;
		for(; i!=n; i++)
		{
			for (int g=0; g<i+1; g++)
			{
				cout << mass[i][g]<< ' ';
			}
			delete []mass[i]; 
			cout<<endl;
		};
		if (m==1) {
				for (int g=0; g<i; g++)
					{
						cout << mass[i][g]<< ' ';
					}
				delete []mass[i];
				cout<<endl;
				}; 
		o=i-1;
		if(m==1)++i,o=i-2;
		for( ;o!=0; o--)
		{
			
					for (int g=0; g<o; g++)
					{
						cout << mass[i][g]<< ' ';
					}
					delete []mass[i];
					cout<<endl;
					i++;
		};


	delete []mass; 
	system("pause");
	return 0;
}
Drakulov вне форума Ответить с цитированием
Старый 14.04.2013, 19:51   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <iostream>
#include "locale"
#include <cstdlib>

using namespace std;

int
main()
{
    setlocale( LC_ALL,"Russian" );
    int n;
    cout << "Размер N: ";
    cin >> n;
    if (n <= 0)
        exit(0);
    int m  = 2 * n - 1;
    int **mass = new int*[m];
    for (int i = 0; i < m; ++i) {
        int k = n - abs(n - i - 1);
        mass[i] = new int[k];
        for (int j = 0; j < k; ++j) {
            mass[i][j] = rand() % 10;
            cout << mass[i][j] << " ";
        }
        cout << endl;
    }
    for (int i = 0; i < m; ++i) {
        delete []mass[i];
    }
    delete []mass;
    system("pause");
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 15.04.2013, 13:19   #6
vik24rus
Пользователь
 
Регистрация: 14.04.2013
Сообщений: 15
По умолчанию

Всем огромное спасибо! еще написал свой вариант:
Код:
const int rows = 9;
const int max_length = 5;
char **pyramid = (char **)malloc(sizeof(char*) * rows);
for(int i=0; i<=(rows>>1); i++)
{
pyramid[(rows>>1) - i] = (char*)malloc(sizeof(char) * (max_length - i));
pyramid[(rows>>1) + i] = (char*)malloc(sizeof(char) * (max_length + i));
}
vik24rus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как выделить память под TBitmap Volkogriz Общие вопросы Delphi 8 03.02.2013 20:57
Как создать динамический массив указателей на компоненты Paleolit C++ Builder 3 06.06.2012 17:51
Выделить память под структуру. ХреновыйПрогер Общие вопросы C/C++ 9 26.12.2010 19:00
динамически выделить память под верхний треугольник квадратной матрицы juventine Общие вопросы C/C++ 2 12.04.2009 13:06