Суть программы.
считать из файла, содержащего последовательность целых чисел два максимальных элемента (причем неравных) и найти их сумму.
Программа отлажена и написана, но не получается задать сам алгоритм на поиск.
идея была такая
if(n==0){a=max1;}
if(a>max1){max2=max1;max1=a;n++;}
косяк алгоритма-считает только на возрастающих последовательностях.(может и на невозрастающих, не помню)
считать из файла, содержащего последовательность целых чисел два максимальных элемента (причем неравных) и найти их сумму.
Программа отлажена и написана, но не получается задать сам алгоритм на поиск.
идея была такая
if(n==0){a=max1;}
if(a>max1){max2=max1;max1=a;n++;}
косяк алгоритма-считает только на возрастающих последовательностях.(может и на невозрастающих, не помню)
по-моему, все правильно, но
здесь:
if(n==0){a=max1;}
наоборот:
if(n==0){max1=а;max2=а;}
а иначе max2 может вообще не посчитаться.
ребята, мы не в том сообществе ((((((
Условимся, что max1<max2.
Инициализация: max1=max2=а; - первое число из ЧП
Далее: если мы обнаружим число a, которое будет больше какого-то из двух максимумов, у нас есть два варианта:
max1< a < max2
max1< max2 < a
Эти случаи отличаются тем, что в одном случае надо перепись два максимума, в другом одно.
Условие обнаружения - число а больше меньшего из максимума.
А дальше дело техники.
ребята, мы не в том сообществе ((((((
Это точно! (в продолжение нашего разговора про темы сообществ)
Продолжайте...
Надо вынести n++; за скобку условия примерно так if(a>max1){max2=max1;max1=a;}n++;, счётчик должен увеличиватся независимо от текущего значения переменной.
Не нравится оно мне... Не будет оно правильно работать.
спасибо, попробую.
я сюда писал, так как в памяти отложилось, что сообщества по инфе нет. ну и в конце концов, тут логический алгоритм, почему бы его не отнести в раздел математики?)
Trotil
спасибо, тоже попробую
MEG_the_grey
в программном коде он у меня вынесен, тут не туда написал. не будет работать