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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2011, 16:12   #1
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию Слияние двух массивов

Подскажите в чем проблема вроде все делаю правильно
Код:
		char imya[30],prizviche[30],res[100];
	int dova,dovb,dovz,i,j,a;
	char c,b;
	cout << "Enter name ";
	cin >> imya;
	cout << "Enter surname ";
	cin >> prizviche;
	dova = strlen(imya);
	dovb = strlen(prizviche);
	clrscr();
	cout << dova << '\t' << dovb <<endl;
	ofstream raport;
	raport.open("Протокол злиття.txt");
	//Сортуємо масив імя
	for (int i = 1; i < dova; i++)
	   {
			 j = i;
			 while (j > 0 && imya[j - 1] > imya[j])
			 {
				   swap(imya[j],imya[j - 1]);
				   j--;
			 }
	   }
	//Сортуємо масив з прізвищем
		for (int i = 1; i < dovb; i++)
	   {
			 j = i;
			 while (j > 0 && prizviche[j - 1] < prizviche[j])
			 {
				   swap(prizviche[j],prizviche[j - 1]);//Міняємо місцями
				   j--;
			 }
	   }
	cout << imya << endl;//Виводимо імя
	cout << prizviche << endl;//Виводимо прізвище
	dovz = dova+dovb;
	cout << dova << "  " << dovb << endl;
	i = dova-1;//Індексатори імені
	cout << i << endl;
	int p = 0;//Індексатор прізвища
	int zliv = 0;//Індексатор масиву в який зливаємо
	ofstream rivni;
	rivni.open("Закінчились літери в імені.txt");
	ofstream im;
	im.open("Імя.txt");
	ofstream pri;
	pri.open("Прізвище.txt");
	ofstream zliti;
	zliti.open("Злитий масив.txt");
	 while(zliv < dovz)
	 {
		 if (i == 0)
		 {
			for (i = p; i < dovb; i++)
			{
			res[zliv] = prizviche[i];
			zliti << res[zliv] << '\t';
			zliv++;
			}
		 }
		 if (p == dovb-1)
		 {
			for (int g = i; g >= 0; g++)
			{
			res[zliv] = imya[g];
			zliti << res[zliv] << '\t';
			zliv++;
			}
		 }
			if (imya[i] > prizviche[p])
			 {
				res[zliv] = imya[i];
				zliti << res[zliv] << '\t';
				zliv++;
				i--;
			 }
				else
				{
					res[zliv] = prizviche[p];
					zliti << res[zliv] << '\t';
					p++;
				}
		for (j = 0; j < zliv; j++)
		{
			raport << res[j] << '\t';
		}
		raport << "\n";
	}
Задача звучит так:
1.Ввесты свое имя и фамилию
2.Видсортуваты их по росту и убыванию произвольным методом
Имя нужно начать сравнивать с конца а фамилия с начала.Большие по значению сбрасывать в 2 массив, а меньше оставлять. В случае если символы останутся их сбросить в массив в последнюю очередь

Помогите пожалуйста

Последний раз редактировалось Anubys; 26.03.2011 в 21:03.
Anubys вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слияние двух массивов в Delphi sauron99 Помощь студентам 17 03.04.2016 09:37
Ошибка в алгоритме слияние массивов ATAMAN200 Общие вопросы C/C++ 3 25.10.2010 20:37
Слияние массивов в паскале A_Orlov Помощь студентам 0 20.06.2010 21:09
Слияние двух файлов в один hen Общие вопросы C/C++ 1 07.10.2009 22:59
Объединение, пересечение, слияние массивов -=Domestos=- Помощь студентам 6 25.12.2006 21:06