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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 18:58   #1
Ker_33rus
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 46
Восклицание немного доработать код, в плане вывода самого часто употребляемого слова!

Код:
#include <iostream>
#include <string.h>
using namespace std;
#define n 3
	struct oil
{char nameMark[10];
int litr;
int price;
	};
oil benzin[5];
void input()
{
	int i;
	for (i=0; i<n; i++)
	{
		cout<<"Vvedite marky kolonki"<<endl;
		cin>>benzin[i].nameMark;
		cout<<"Vvtdite koli4estvo litrov"<<endl;
		cin>>benzin[i].litr;
		cout<<"Vvedite ceny za 1 litr"<<endl;
		cin>>benzin[i].price;
	}
}
void output()
{
cout<<"Marka kolonki | ";
cout<<"Koli4estvo litrov | ";
cout<<"Cena za litr | ";
cout<<"Pribol"<<endl;
	int i;
for (i=0; i<n; i++)
{
cout<<"       "<<benzin[i].nameMark;
cout<<"          "<<benzin[i].litr;
cout<<"                  "<<benzin[i].price;
cout<<"                "<<benzin[i].price*benzin[i].litr<<endl;
}
}
void sort()
{
oil x;
for(int j=0; j<n; j++)
{
	for(int i=0; i<n-1; i++)
	{
		if(benzin[i].price*benzin[i].litr<benzin[i+1].price*benzin[i+1].litr)
		{
			x=benzin[i];
		benzin[i]=benzin[i+1];
benzin[i+1]=x;
		}
		else
if(benzin[i].price*benzin[i].litr==benzin[i+1].price*benzin[i+1].litr)
{
	if(benzin[i].litr>benzin[i+1].litr)
	{
	x=benzin[i];
		benzin[i]=benzin[i+1];
benzin[i+1]=x;
	}
}
	}
}
}
void pop()
{
oil max;
max=benzin[0];
for (int i=1; i<n; i++)
{
  if (benzin[i]>max) 
  {
    max=benzin[i];
  }
}
cout<<"Samaya populyarnaya marka benzinA:"<<max<<endl;
}
int main()
{
	input();
		cout<<endl;
	output();
	    cout<<"_______________________________________________________________________________"<<endl;
	sort();
	output();
		cout<<endl;
	pop();
	    cout<<endl;
		system("pause");
return 0;
}
Вообщем в void pop() нужно написать подпрограмму, которая будет выводить наиболию частую употребляюмую марку бензина(сказали что делается через максимальное значение, но у меня там бред), помогите дописать пожалуста
Ker_33rus вне форума
Старый 17.02.2010, 19:14   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

В этой программе трудно что-либо понять.
Какое вообще условие задачи?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума
Старый 17.02.2010, 20:01   #3
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

может так

Код:
void pop()
{
oil max;
max=benzin[0];
for (int i=1; i<n; i++)
{
  if (benzin[i].litr>max.litr) 
  {
    max=benzin[i];
  }
}
cout<<"Samaya populyarnaya marka benzinA:"<<max.nameMark<<endl;
}
counter вне форума
Старый 17.02.2010, 20:12   #4
Ker_33rus
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 46
По умолчанию

Цитата:
Сообщение от Syuf Посмотреть сообщение
В этой программе трудно что-либо понять.
Какое вообще условие задачи?
1 воодишь данные позаправкам
2 выводит это все в виде таблицы
3 сортирует по приболе по убыанию
4 нужно сделать как я описал
Ker_33rus вне форума
Старый 17.02.2010, 20:19   #5
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Попробуй
Код:
void pop()
{
	int q=0;
oil max;
max.litr=benzin[0].litr;
for (int i=1; i<n; i++)
{
	if (benzin[i].litr>max.litr) 
  {
	  max.litr=benzin[i].litr;
	  q=i;
  }
}
cout<<"Samaya populyarnaya marka benzinA:"<<benzin[q].nameMark<<endl;
}
Cpluser вне форума
Старый 17.02.2010, 20:43   #6
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Как-то не очень:
Код:
void pop()
{
	char names[n][10];
	int liters[n];
	for(int i=0; i<n; liters[i++]=-1); // На всякий случай
	for(int i=0; i<n; i++)
	{
		for(int a=0; a<i; a++)
			if(!strcmp(benzin[i].nameMark, names[a]))
			{
				liters[a]+=benzin[i].litr;
				break;
				continue;
			}
		strcpy(names[i], benzin[i].nameMark);
		liters[i] = benzin[i].litr;
	}

	int max(0);
	for(int i=1; i<n; i++)
		if(liters[i]>liters[max])
			max = i;

	cout<<"Samaya popylarnaya marka benzina: "<<names[max]<<endl;
	// Или cout<<...<<benzin[max].nameMark<<endl;
}
Ведь марки могут быть одинаковыми?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Syuf; 17.02.2010 в 20:59.
Syuf вне форума
Старый 17.02.2010, 21:16   #7
Ker_33rus
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 46
По умолчанию

ребят все спасибо, набрался разума и написал по своему и все заоботало)
Ker_33rus вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение самого короткого слова Диезушка Помощь студентам 2 20.10.2009 21:43
Доработать код Микки Microsoft Office Excel 7 31.03.2009 13:12
Как доработать код ? zander Microsoft Office Excel 3 04.03.2009 20:22
Pascal//определить длину самого короткого и самого длинного слова в строке ShnurOK Помощь студентам 2 16.12.2007 10:43