Самое большое значение

 

Здравствуйте.

Пытаюсь сделать функцию которая бы отвечала на вопрос: А самое ли большое значение у данной свечи по сравнению с предыдущими?

Но вот что-то не получаться? А что понять не могу. Постоянно возвращает FALSE. Будь-то бы предыдущие значения больше заданной, хотя на самом деле это не так!

bool MostHigh(int v)
{
   bool res = False;
   for(int a=0; a<=v;a++)   
   {
      if(High[v] > High[a])   
      {
         res = True;
      }
      else
      {
         res = False;
         return (res);
      }
   }
   return (res);
}
 

Спасибо большое за помощь!

Огромный плюс Вам в КАРМУ!

 
jhon:

Здравствуйте.

Пытаюсь сделать функцию которая бы отвечала на вопрос: А самое ли большое значение у данной свечи по сравнению с предыдущими?

Но вот что-то не получаться? А что понять не могу. Постоянно возвращает FALSE. Будь-то бы предыдущие значения больше заданной, хотя на самом деле это не так!

bool MostHigh(int v)
{
   bool res = False;
   for(int a=0; a<=v;a++)   
   {
      if(High[v] > High[a])   
      {
         res = True;
      }
      else
      {
         res = False;
         return (res);
      }
   }
   return (res);
}

Стандартные функции - это хорошо, но я, например, предпочитаю полный контроль над алгоритмом - это позволяет получить независимость от платформы ;).

Думаю, точнее уверен, проблема в логике функции. Попробуйте так:

bool IsMostHigh(int v)
{
   for(int i=0; i<v;i++)   
      if(High[v] < High[i])   
         return (False);
   return (True);
}
 
bool MostHigh(int v)
{
   for(int a=1; a<=v;a++)   
   {
      if(High[a]-High[0] > 0.00001) // для 5-знака   
         return(true);
   }
   return (false);
}
 
jhon:

Здравствуйте.

Пытаюсь сделать функцию которая бы отвечала на вопрос: А самое ли большое значение у данной свечи по сравнению с предыдущими?

Но вот что-то не получаться? А что понять не могу. Постоянно возвращает FALSE. Будь-то бы предыдущие значения больше заданной, хотя на самом деле это не так!


Проблема в строке:

for(int a=0; a<=v;a++)

Когда a стенет равно b, условие

if(High[v] > High[a])

не выполнится и переменная res примет значение false.

 
PapaYozh:


Проблема в строке:

Когда a стенет равно b, условие

не выполнится и переменная res примет значение false.

Задача была - проверить, что хотя бы одна из предыдущих свечей больше нулевой, т.е. текущей. В оригинальном коде вообще непонятно что написано
Причина обращения: