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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 00:35   #1
StayCool
Пользователь
 
Регистрация: 25.11.2011
Сообщений: 12
По умолчанию Перемешка массива в C++

Задача: перемешать массив Massiv_1.
Код:
int i; 
char Massiv_1[6]={"qwerty"}; 
char Massiv_2[6]; 

for(i=0;i<6;i++) 
{ 
Massiv_2=random(massiv_1); // задумка: каждой переменной второго 
   //массива присваевается случайная переменная из первого массива.
   //Если эта запись не верна пожалуйста объясните почему.
} 
cout<<endl<<" "; 
} 
 getchar(); 
 return 0; 
}

Последний раз редактировалось StayCool; 06.12.2011 в 01:14.
StayCool вне форума Ответить с цитированием
Старый 06.12.2011, 02:08   #2
StayCool
Пользователь
 
Регистрация: 25.11.2011
Сообщений: 12
По умолчанию

В чём ошибка?
StayCool вне форума Ответить с цитированием
Старый 06.12.2011, 02:47   #3
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

Ошибка в логике, реализации и понимании значения перемешивания.
Код:
int main(){
	srand(time(0));
	const int N=7;
	char Massiv_1[N]={"qwerty"}; // "qwerty\0"в 6 слотов пытаетесь запихать  7 символов?
	cout<<Massiv_1<<endl;
	char Massiv_2[N]; 
	int tmp=N-1;// что бы не оставить символ конца строки в конце
	for(int i=0;i<N-1;i++){ // задумка присваивания случайного элемента вкроне неверна! Это получится не перемешивание.
		int t=rand()%tmp;
		Massiv_2[i]=Massiv_1[t];
		Massiv_1[t]=Massiv_1[tmp-1];
		--tmp;

	}
	Massiv_2[N-1]='\0';
	cout<<Massiv_2<<endl;
	cout<<endl<<" "; 
	getchar(); 
	return 0; 

}
Ёж птица гордая, пока не пнешь не полетит.

Последний раз редактировалось Ezhuk; 06.12.2011 в 03:25.
Ezhuk вне форума Ответить с цитированием
Старый 06.12.2011, 20:08   #4
StayCool
Пользователь
 
Регистрация: 25.11.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Ezhuk Посмотреть сообщение
Ошибка в логике, реализации и понимании значения перемешивания.
Код:
int main(){
	srand(time(0));
	const int N=7;
	char Massiv_1[N]={"qwerty"}; // "qwerty\0"в 6 слотов пытаетесь запихать  7 символов?
	cout<<Massiv_1<<endl;
	char Massiv_2[N]; 
	int tmp=N-1;// что бы не оставить символ конца строки в конце
	for(int i=0;i<N-1;i++){ // задумка присваивания случайного элемента вкроне неверна! Это получится не перемешивание.
		int t=rand()%tmp;
		Massiv_2[i]=Massiv_1[t];
		Massiv_1[t]=Massiv_1[tmp-1];
		--tmp;

	}
	Massiv_2[N-1]='\0';
	cout<<Massiv_2<<endl;
	cout<<endl<<" "; 
	getchar(); 
	return 0; 

}
Спасибо за помощь, работает
StayCool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По массивам, SOS! из целочисленного массива удалить из массива элементы, встречающиеся менее 3-х раз prelest' Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2011 22:37
Произведение элементов массива в функции (передача массива в функцию) (Delphi) Toxa16 Помощь студентам 1 23.04.2011 04:42
Pascal: Составить программу генерирования массива B, состящего из отрицательных элементов массива a mrRastom Помощь студентам 2 15.01.2011 14:33
Сумма и произведение элементов массива, удовлетворяющих условию (генерация float массива) felodese Помощь студентам 1 11.11.2010 20:52
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44