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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2015, 13:51   #1
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
Печаль Динамический двумерный массив

1. Создать динамический двумерный массив на 20 ячеек (на 20 строк). Заполнить его строчками текста, принятыми с клавиатуры.
2. Реализовать для этого массива следующее меню:
• В выбранной пользователем строке сортировать символы по возрастанию
• Проверить содержит ли случайная строка введенный пользователем ключ (последовательность символов/строка)
• Проверить содержат ли все строки введенный пользователем ключ (последовательность символов/строка)
• Если в случайной строке содержится слово «Вася», заменить его на слово «Маша»
• Определить, является ли выбранная пользователем строка палиндромом
3. Предусмотреть повторное пользование меню
4. Использовать в коде указатели и функции.
Андрей Иванов вне форума Ответить с цитированием
Старый 14.04.2015, 14:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Попыточки и наработочки имеются?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2015, 14:44   #3
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Попыточки и наработочки имеются?
Код:
#include <iostream> 
#include <ctime> 
using namespace std;

void input(char **mss, int x, int y);
void output(char **mss, int x, int y);
void sort(char **mss, int x, int y);
void search1(char **mss, int x, int y);
void search2(char **mss, int x, int y);
void zamena(char **mss, int x, int y);
void palindrom(char **mss, int x, int y);
void delet(char **mss, int x, int y);

int main() 
{
	setlocale(LC_ALL, "rus"); 
	
	char ** mss;
	int x = 10;
	int y = 10;
		
	
	cout << "Введите размер массива по X = ";
	cout << x << endl;
	cout << "Введите размер массива по Y = ";
	cout << y << endl;
	
	mss = new char*[x];
	for (int i = 0; i<x; i++)
	{
		mss[i] = new char[y];
	}

	input(mss, x, y);
	output(mss, x, y);
	sort(mss, x, y);
	search1(mss, x, y);
	search2(mss, x, y);
	zamena(mss, x, y);
	palindrom(mss, x, y);
	delet(mss, x, y);

	system("pause"); 
	return 0;
}

void input(char **mss, int x, int y)
{
	for (int i = 0; i < x; i++)
	{
		gets(*mss);
	}
}

void output(char **mss, int x, int y)
{
	for (int i = 0; i<x; i++)
	{
		cout << *mss << " ";		
	}
}

void zamena(char **mss, int x, int y)
{
	for (int i = 0; i<x; i++){
		if (*mss[i] == 'Вася'){
			cout << "Маша";
		}		
	}
}

void output(char **mss, int x, int y)
{
	int size = strlen(*mss);
	int count = 0;

	for (int i = 0, j = size - 1; i < size / 2; i++, j--)
	if (mss[i] == mss[j])
		count++;
	if (count == size / 2)
		cout << "Палиндром" << endl;
	else
		cout << "Не палиндром" <<endl;
}

void delet(char **mss, int x, int y)
{
	for (int i = 0; i<x; i++)
	{
		delete[] mss[i];
	}
	delete[] mss;
}
Андрей Иванов вне форума Ответить с цитированием
Старый 14.04.2015, 14:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У-у-у... Красота.
А теперь подробненько и по-порядку чем код не устраивает, чего не хватает и т.д.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2015, 14:51   #5
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
У-у-у... Красота.
А теперь подробненько и по-порядку чем код не устраивает, чего не хватает и т.д.
Не хватает:

- В выбранной пользователем строке сортировать символы по возрастанию
- Проверить содержит ли случайная строка введенный пользователем ключ (последовательность символов/строка)
- Проверить содержат ли все строки введенный пользователем ключ (последовательность символов/строка)

И можете проверить код который уже есть на правильность, хоть в правильном направлении иду или нет.
Андрей Иванов вне форума Ответить с цитированием
Старый 14.04.2015, 15:54   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В выбранной пользователем строке сортировать символы по возрастанию
Код:
void sorta(char *s){
 char c; int i,j;
 for(i=0;s[i];i++){
  for(j=0;s[j];j++){
   if(s[i]<s[j]){c=s[i];s[i]=s[j];s[j]=c;}
  }
 }
}
Соответственно:
Код:
cout<<"Какую строку сортируем?"; int i; cin>>i;
sorta(mss[i]);
Тут выводим матрицу.
Цитата:
Проверить содержит ли случайная строка введенный пользователем ключ (последовательность символов/строка)
Т.е. входит ли строка в подстроку? Рекомендую почитать про функцию strstr().
Цитата:
проверить код который уже есть на правильность
Запусти - что получится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный динамический массив ArcadyTI Паскаль, Turbo Pascal, PascalABC.NET 14 17.02.2014 23:57
Двумерный динамический массив Sauber Помощь студентам 2 22.03.2011 08:02
Двумерный динамический массив С++ UnknownVirus Помощь студентам 7 20.06.2010 01:48
Двумерный динамический массив IceExecutioner Общие вопросы Delphi 1 04.06.2009 08:41