Size: a a a

IT KPI C/С++ ХВ (хорошо, что не UB)

2017 December 20

NS

Nickita Skilkov in IT KPI C/С++ ХВ (хорошо, что не UB)
Так, давай сначала код, и что крашится, а потом уже будем разговаривать
источник

НБ

Никита Бриж in IT KPI C/С++ ХВ (хорошо, что не UB)
int count(fraction_list *head)
{
   fraction_list *inkr,*tmp1=head,*tmp2=head;
   inkr = head;
 double max, min;
 min= head->x + head->y;
 max = min;
 while (inkr->next != NULL)
   {
   inkr = inkr->next;
   if (inkr->x + inkr->y > max) {
     max = inkr->x + inkr->y;
     tmp1 = inkr;
   }
   if (inkr->x + inkr->y < min) {
     min = inkr->x + inkr->y;
     tmp2 = inkr;
   }
   }
   int i=0;
 inkr = head;
 while (inkr->next != NULL)
 {
  if (inkr->next == tmp1)
  {
    while ((inkr->next!=NULL)&(inkr->next != tmp2))
    {
      i++;
      inkr = inkr->next;
   }
   return(i-1);
  }
  if ((inkr->next == tmp2))
  {
     
    while ((inkr->next!=NULL)&(inkr->next != tmp1))
    {
      i++;
      inkr = inkr->next;
   }
   return(i-1);
  }
  inkr = inkr->next;
 }
 
}
источник

НБ

Никита Бриж in IT KPI C/С++ ХВ (хорошо, что не UB)
функция подсчета кол-ва элементов между мин и макс
источник

K

Kato in IT KPI C/С++ ХВ (хорошо, что не UB)
Никита Бриж
int count(fraction_list *head)
{
   fraction_list *inkr,*tmp1=head,*tmp2=head;
   inkr = head;
 double max, min;
 min= head->x + head->y;
 max = min;
 while (inkr->next != NULL)
   {
   inkr = inkr->next;
   if (inkr->x + inkr->y > max) {
     max = inkr->x + inkr->y;
     tmp1 = inkr;
   }
   if (inkr->x + inkr->y < min) {
     min = inkr->x + inkr->y;
     tmp2 = inkr;
   }
   }
   int i=0;
 inkr = head;
 while (inkr->next != NULL)
 {
  if (inkr->next == tmp1)
  {
    while ((inkr->next!=NULL)&(inkr->next != tmp2))
    {
      i++;
      inkr = inkr->next;
   }
   return(i-1);
  }
  if ((inkr->next == tmp2))
  {
     
    while ((inkr->next!=NULL)&(inkr->next != tmp1))
    {
      i++;
      inkr = inkr->next;
   }
   return(i-1);
  }
  inkr = inkr->next;
 }
 
}
в телеге код выделяется тремя символами ` c каждой стороны
источник

НБ

Никита Бриж in IT KPI C/С++ ХВ (хорошо, что не UB)
`
источник

NS

Nickita Skilkov in IT KPI C/С++ ХВ (хорошо, что не UB)
и тогда это становится читабельно
источник

НБ

Никита Бриж in IT KPI C/С++ ХВ (хорошо, что не UB)
 int count(fraction_list *head)
{
   fraction_list *inkr,*tmp1=head,*tmp2=head;
   inkr = head;
 double max, min;
 min= head->x + head->y;
 max = min;
 while (inkr->next != NULL)
   {
   inkr = inkr->next;
   if (inkr->x + inkr->y > max) {
     max = inkr->x + inkr->y;
     tmp1 = inkr;
   }
   if (inkr->x + inkr->y < min) {
     min = inkr->x + inkr->y;
     tmp2 = inkr;
   }
   }
   int i=0;
 inkr = head;
 while (inkr->next != NULL)
 {
  if (inkr->next == tmp1)
  {
    while ((inkr->next!=NULL)&(inkr->next != tmp2))
    {
      i++;
      inkr = inkr->next;
   }
   return(i-1);
  }
  if ((inkr->next == tmp2))
  {
     
    while ((inkr->next!=NULL)&(inkr->next != tmp1))
    {
      i++;
      inkr = inkr->next;
   }
   return(i-1);
  }
  inkr = inkr->next;
 }
 
}
источник

НБ

Никита Бриж in IT KPI C/С++ ХВ (хорошо, что не UB)
извиняюсь, не знал
источник

bi

bohdan ivashko in IT KPI C/С++ ХВ (хорошо, что не UB)
ну во первых у тебя & вместо &&
источник

NS

Nickita Skilkov in IT KPI C/С++ ХВ (хорошо, что не UB)
В теории у тебя должен происходить пиздец из-за вложенных циклов
источник

bi

bohdan ivashko in IT KPI C/С++ ХВ (хорошо, что не UB)
та не
источник

NS

Nickita Skilkov in IT KPI C/С++ ХВ (хорошо, что не UB)
Поскольку у тебя в теории может получиться такая ситуация что inkr->next не может быть взят
источник

NS

Nickita Skilkov in IT KPI C/С++ ХВ (хорошо, что не UB)
Поскольку inkr == NULL
источник

НБ

Никита Бриж in IT KPI C/С++ ХВ (хорошо, что не UB)
ТООООЧНО
источник

НБ

Никита Бриж in IT KPI C/С++ ХВ (хорошо, что не UB)
у меня макс последниц элемент
источник

НБ

Никита Бриж in IT KPI C/С++ ХВ (хорошо, что не UB)
спасибо
источник

NS

Nickita Skilkov in IT KPI C/С++ ХВ (хорошо, что не UB)
Вообще по-хорошему если покумекать то этот алгоритм делается проще, там явно такой вложенности циклов не надо
источник

bi

bohdan ivashko in IT KPI C/С++ ХВ (хорошо, что не UB)
но блин, замени & на &&😅
источник

NS

Nickita Skilkov in IT KPI C/С++ ХВ (хорошо, что не UB)
bohdan ivashko
но блин, замени & на &&😅
Вот вообще без базара братан) А то прогу совсе лихорадить будет)
источник

bi

bohdan ivashko in IT KPI C/С++ ХВ (хорошо, что не UB)
да не, должна и так рабоиать, просто блин)
источник