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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.02.2009, 16:36   #1
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию Сортировка массива структур.

Доброго времени суток! Вот пишу программу Которая должна сортировать товар (Фирма, название, цена) по возрастанию. Пользуюсь методом пузырька. Сортировку цены сделал, но не могу придумать как можно сделать так, что бы одновременно с ценой менялись так же и название и фирма.. Подскажите, пожалуйста. если не трудно. Вот код:
Код:
struct tovar
{ 
    char Firm[100];
    char Name[100];
    double Cena;
};

int main()
{
tovar st[10];
int n = 3;

for (int i=0; i < n; i++) {
  if (st[i].Cena > st[i+1].Cena)
  {
     b = st[i].Cena;
     st[i].Cena = st[i+1].Cena;
     st[i+1].Cena = b; } 
}
Модератор: тег CODE

Последний раз редактировалось MaTBeu; 22.02.2009 в 20:24.
nec117 вне форума
Старый 22.02.2009, 16:59   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Тег [CODE] ставить надо обязательно
Я не вижу тут сортировки пузырька.Это уже на вставку похоже.
Ты когда меняешь 2 элемента массива меняй не только цену а еще и
char Firm[100];
char Name[100];

Разберешься?
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума
Старый 22.02.2009, 17:01   #3
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

не могу понять как их тоже менять, можешь показать пример?
nec117 вне форума
Старый 22.02.2009, 17:01   #4
KVF
Пользователь
 
Регистрация: 27.07.2008
Сообщений: 30
По умолчанию

Попробуй так =)
Код:
struct tovar
{
	tovar& operator=(tovar &t1) {
		for(int i = 0; i < 100; ++i) {
			Firm[i] = t1.Firm[i];
			Name[i] = t1.Name[i];
		}
		Cena = t1.Cena;
		return *this;
	}
	char Firm[100];
	char Name[100];
	double Cena;
};

void swap_tovar(tovar &t1, tovar &t2) {
	tovar tmp;
	tmp = t2;
	t2 = t1;
	t1 = tmp;
}


int main() {
	tovar st[10];
	int n = 3;
	for (int i = 0; i < n; i++) {
		if (st[i].Cena > st[i + 1].Cena)
			swap_tovar(st[i], st[i + 1]);
	}
	return 0;
}
Правдо не тестировал )) так что правильность не гарантирую
KVF вне форума
Старый 22.02.2009, 17:04   #5
KVF
Пользователь
 
Регистрация: 27.07.2008
Сообщений: 30
По умолчанию

Кстати что бы пузырем отсортировать нужно 2 цикла писать )
Код:
for (int i = 0; i < n; i++) {
		for(int j = i + 1; j < n; j++) {
			if (st[i].Cena > st[j].Cena)
				swap_tovar(st[i], st[j]);
		}
	}
Как-то так =)

Последний раз редактировалось KVF; 22.02.2009 в 17:06.
KVF вне форума
Старый 22.02.2009, 18:01   #6
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Спасибо большое всем за помощь! Всё получилось
nec117 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива С/С++ Dagget Помощь студентам 1 16.07.2008 12:18
Сортировка массива Kraven Общие вопросы Delphi 3 25.06.2008 18:22
Сортировка массива структур arturka Помощь студентам 1 21.06.2008 14:15
Сортировка массива RIO Помощь студентам 1 05.04.2008 17:39