Суть программы.
считать из файла, содержащего последовательность целых чисел два максимальных элемента (причем неравных) и найти их сумму.
Программа отлажена и написана, но не получается задать сам алгоритм на поиск.
идея была такая

if(n==0){a=max1;}
if(a>max1){max2=max1;max1=a;n++;}

косяк алгоритма-считает только на возрастающих последовательностях.(может и на невозрастающих, не помню)


@темы: Программирование (тема закрыта

Комментарии
25.11.2007 в 22:57

Так. Есть некий цикл и переменная "a" пробегает все значения числовой последовательности. А что есть "n" в вашем решении? Это флаг?

25.11.2007 в 22:59

счетчик, а что называется флагом?
25.11.2007 в 23:00

На плечах гигантов, на спинах электронов
эфемерные улыбки
по-моему, все правильно, но
здесь:
if(n==0){a=max1;}

наоборот:
if(n==0){max1=а;max2=а;}
а иначе max2 может вообще не посчитаться.
25.11.2007 в 23:03

На плечах гигантов, на спинах электронов
что-то до меня медленно доходит (((
ребята, мы не в том сообществе ((((((

25.11.2007 в 23:07

Как бы решил ее я.

Условимся, что max1<max2.

Инициализация: max1=max2=а; - первое число из ЧП

Далее: если мы обнаружим число a, которое будет больше какого-то из двух максимумов, у нас есть два варианта:

max1< a < max2
max1< max2 < a

Эти случаи отличаются тем, что в одном случае надо перепись два максимума, в другом одно.

Условие обнаружения - число а больше меньшего из максимума.

А дальше дело техники.



25.11.2007 в 23:08

Самый опасный хищник в мире
Дилетант
ребята, мы не в том сообществе ((((((
Это точно! (в продолжение нашего разговора про темы сообществ)

25.11.2007 в 23:09

Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Ну, уж теперь ничего не сделаешь)))
Продолжайте...
25.11.2007 в 23:14

< Хроническое исключение > Когда все считают, что ты маленький, белый и пушистый, не спеши показывать свои когти и зубы
if(a>max1){max2=max1;max1=a;n++;}
Надо вынести n++; за скобку условия примерно так if(a>max1){max2=max1;max1=a;}n++;, счётчик должен увеличиватся независимо от текущего значения переменной.
25.11.2007 в 23:19

MEG_the_grey
Не нравится оно мне... Не будет оно правильно работать.

25.11.2007 в 23:27

Дилетант
спасибо, попробую.

я сюда писал, так как в памяти отложилось, что сообщества по инфе нет. ну и в конце концов, тут логический алгоритм, почему бы его не отнести в раздел математики?)

Trotil
спасибо, тоже попробую


MEG_the_grey
в программном коде он у меня вынесен, тут не туда написал. не будет работать