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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2015, 03:13   #1
Joesidorov
Пользователь
 
Регистрация: 09.12.2015
Сообщений: 26
По умолчанию Двумерный динамический массив C++

Привет всем!!!

код работает, но надо чтобы когда пользовател выбрал ("If you want to have data automatically, Enter 2 " ) ему было возможност ввисти Диапазон массива. Как ето лучше сделать? Спасибо ранее за помощь!!!!

Код:
#include <iostream>
#include <time.h>
#include <stdlib.h>

using namespace std;

int main()
{
	int option, m, n;
	cout << "Enter row size: ";
	cin >> n;
	cout << "Enter columm size: ";
	cin >> m;
	cout << endl << "Enter Your Choice: " << endl << endl;
	cout << "If you want to enter data yourself, Enter 1 " << endl << endl;
	cout << "If you want to have data automatically, Enter 2 " << endl;
	cout << ">>> ";
	cin >> option;

	int **pp = new int*[n];
	for (int i = 0; i < n; i++)
		pp[i] = new int[m];

	if (option == 1)
	{
		cout << "Enter element: " << endl;
		for (int i = 0; i < n; i++)
			for (int j = 0; j < m; j++)
				cin >> pp[i][j];
		cout << endl;

		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < m; j++)
				cout << pp[i][j] << ' ';
			cout << endl;
		}
		for (int i = 0; i < n; i++) {
			int mult = 1;
			for (int j = 0; j < m; j++)
			{
				if (pp[i][j]<0)
					mult *= pp[i][j];
				else
					mult = 0;
			}
			if (mult)
			{
				cout << "Sum: " << mult << ' ';
				cout << endl;
			}
		}
	}
	else if (option == 2)
	{
		srand(time(NULL));
		cout << "Generated array: " << endl;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) cout << (pp[i][j] = rand() % 100) << ' ';
			cout << endl;
		}
	}

	for (int i = 0; i < n; i++)
		delete pp[i];

	delete[] pp;

	cout << endl;
	system("pause");
	return 0;
}

Последний раз редактировалось Stilet; 24.12.2015 в 09:37.
Joesidorov вне форума Ответить с цитированием
Старый 24.12.2015, 09:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int main()
{
	int option, m=rand()%100+10, n=rand()%100+10;
	cout << endl << "Enter Your Choice: " << endl << endl;
	cout << "If you want to enter data yourself, Enter 1 " << endl << endl;
	cout << "If you want to have data automatically, Enter 2 " << endl;
	cout << ">>> ";
	cin >> option;
if(option==1){
	cout << "Enter row size: ";
	cin >> n;
	cout << "Enter columm size: ";
	cin >> m;
}
...
Сойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.12.2015, 17:16   #3
Joesidorov
Пользователь
 
Регистрация: 09.12.2015
Сообщений: 26
По умолчанию

когда нажимаешь 2 (If you want to have data automatically, Enter 2)

Код:
#include <iostream>
#include <time.h>
#include <stdlib.h>

using namespace std;

int main()
{
	int option, m = rand() % 100 + 10, n = rand() % 100 + 10;
	cout << endl << "Enter Your Choice: " << endl << endl;
	cout << "If you want to enter data yourself, Enter 1 " << endl << endl;
	cout << "If you want to have data automatically, Enter 2 " << endl;
	cout << ">>> ";
	cin >> option;

	int **pp = new int*[n];
	for (int i = 0; i < n; i++)
		pp[i] = new int[m];


	if (option == 1) {
		cout << "Enter row size: ";
		cin >> n;
		cout << "Enter columm size: ";
		cin >> m;

	
		cout << "Enter element: " << endl;
		for (int i = 0; i < n; i++)
			for (int j = 0; j < m; j++)
				cin >> pp[i][j];
		cout << endl;

		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < m; j++)
				cout << pp[i][j] << ' ';
			cout << endl;
		}
		for (int i = 0; i < n; i++) {
			int mult = 1;
			for (int j = 0; j < m; j++)
			{
				if (pp[i][j]<0)
					mult *= pp[i][j];
				else
					mult = 0;
			}
			if (mult)
			{
				cout << "Sum: " << mult << ' ';
				cout << endl;
			}
		}
	}
	else if (option == 2)
	{
		cout << "Generated array: " << endl;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) cout << pp[i][j] << ' ';
			cout << endl;
		}
	}

	for (int i = 0; i < n; i++)
		delete pp[i];

	delete[] pp;

	cout << endl;
	system("pause");
	return 0;
}
Изображения
Тип файла: jpg 4.jpg (75.2 Кб, 123 просмотров)

Последний раз редактировалось Stilet; 24.12.2015 в 17:21.
Joesidorov вне форума Ответить с цитированием
Старый 24.12.2015, 17:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну уменьш кол-во генерируемого. Поставь там rand()%10+1;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный динамический массив C++ Joesidorov Общие вопросы C/C++ 1 09.12.2015 21:50
двумерный динамический массив amandra Общие вопросы Delphi 16 30.07.2013 22:56
Двумерный динамический массив revizor C++ Builder 1 02.05.2013 22:08
динамический двумерный массив dart_nick Помощь студентам 0 11.12.2011 13:44
динамический двумерный массив Ilya_L Помощь студентам 3 28.09.2011 04:29