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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2010, 16:01   #1
Перфаратар
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 15
Восклицание Написание программы на С++

Вот условия задачи: "Дано 4 числа. Определить минимальное и максимальное, если минимальное в модуле больше максимального найти ихнюю суму, если нет - произведение."
Дело в том, что я сам написал программу к этой задаче, но моему преподавателю она не понравилась из-за того, что я использовал массив и for. Говорит мол, пиши только с if. Я вообще не могу сообразить как её таким образом написать, помогите пожалуйста. Заранее спасибо.
Перфаратар вне форума Ответить с цитированием
Старый 18.09.2010, 16:37   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

ну и сравни тогда тупо эти 4 числа, не массив используй, а 4 переменные
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 18.09.2010, 16:43   #3
Перфаратар
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от RUSt88 Посмотреть сообщение
ну и сравни тогда тупо эти 4 числа, не массив используй, а 4 переменные
Я это и пытаюсь сделать, но не могу всё в кучу связать и собрать. Я только начал учить С++.
Перфаратар вне форума Ответить с цитированием
Старый 18.09.2010, 16:50   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
if a>b and a>c and a>d then max=a
else if b>c and b>d then max=b
else if c>d then max=c
else max=d
;для минимума знаки сам сменишь
if max<(0-min) then result=a+b+c+d
else result=a*b*c*d
на С++ сам переведешь наверно

Последний раз редактировалось rrrFer; 18.09.2010 в 16:51. Причина: теги CODE
rrrFer вне форума Ответить с цитированием
Старый 18.09.2010, 17:02   #5
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ну решите задачу в лоб:
Код:
	int a,b,c,d,min,max;
	min = max = a;
	if (b<min)
	   min = b;
	if (c<min)
	   min = c;
	if (d<min)
	   min = d;
	if (b>max)
	   max = b;
	if (c>max)
	   max = c;
	if (d>max)
	   max = d;
	int result = (min>=0?min:-min)>max?a+b+c+d:a*b*c*d;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 18.09.2010, 17:05   #6
Перфаратар
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
Код:
if a>b and a>c and a>d then max=a
else if b>c and b>d then max=b
else if c>d then max=c
else max=d
;для минимума знаки сам сменишь
if max<(0-min) then result=a+b+c+d
else result=a*b*c*d
на С++ сам переведешь наверно
Нет не переведу.

Ребят, кому писать не хочется - не пишите, просто вы стараетесь быстрее написать сжимаете информацию, а я же ничего понять не могу, что там написано и как. Я кое что смыслю, но не до такой степени.

Последний раз редактировалось Stilet; 18.09.2010 в 17:52.
Перфаратар вне форума Ответить с цитированием
Старый 18.09.2010, 17:52   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Перфаратар
А чем код russian-stalker не устроил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2010, 19:08   #8
Перфаратар
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А чем код russian-stalker не устроил?
а с каких болтов там min=max=a
Перфаратар вне форума Ответить с цитированием
Старый 18.09.2010, 19:18   #9
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Перфаратар
все там нормально, попробовал бы хоть сначала ну или подумал. Там только операций присваивания выполняется много(в моем варианте максимум получается за 1 присваивание) ну и в любом случае выполнится 6 сравнений(в моем в худшем 6, в лучшем 3), ну и тут еще криво конечно: (min>=0?min:-min)>max 2 сравнения(можно одно), т.к. только если -min>max то |min|>|max|
rrrFer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание программы hunter05 Помощь студентам 2 13.06.2010 21:12
написание программы koroed Общие вопросы C/C++ 1 26.04.2010 20:43
написание программы!!!! shananina-katya Помощь студентам 2 18.01.2010 11:27
Написание программы Ky3Heu, Общие вопросы Delphi 1 10.04.2009 14:32