На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> В чем бага?
    Такая задачка. Дана последовательность, состоящая из n целых чисел. Найти наименьшее среди простых чисел последовательности.
    Т.е., как я понимаю, задачка состоит из 2-х частей: выделить простые числа и найти минимальных среди них (или наоборот). Отдельно каждая часть работает, а вот вместе почему-то нет. Где у меня ошибка? Только не говорите, что в ДНК biggrin.gif
    CODE

    #include <iostream.h>
    #include <conio.h>
    //---------------------------------------------------------------------------
    #pragma argsused
    int main()
    {
    int n,i,a,d,ost,min;
    cout << "Vvedite posledovatel'nost' iz n elementov" << "\n";
    cout << "-> ";
    cin >> a;
    min=a;
    while (a>0)
    {
    d=2;
    do
    {
    ost=n%d;
    if (ost!=0)
    d++;
    }
    while (ost!=0);
    if (d==n)
    {
    while (a>0)
    {
    if (a<min)
    min=a;
    cout << "-> ";
    cin >> a;
    }
    }
    cout << "min=" << min;
    }
    getch();
    return 0;
    }
      CODE

      int main()
      {
       int n,i,a,d,ost,min;
       bool flag;
       cout << "Vvedite posledovatel'nost' iz n elementov" << "\n";
       cout << "-> ";
       cin >> a;
       min=a;

       while (a>0)
       {
         d=2;
         flag = 1;

         while (d < (n/2)) //на самом деле не n/2 а sqr(n)
         {
           if ((n%d) == 0)
           {
              flag = 0;
              break;
           }
           d++;
         }

         if (flag)
         {
           if (a<min)
            min=a;
         }

         cout << "-> ";
         cin >> a;
       }

       cout << "min=" << min;
       getch();
       return 0;
      }

      Это должно работать, но я писал прямо тут и не ручаюсь
        QUOTE
        ost=n%d;

        Кто-нибудь сможет мне внятно сказать чему равно "n" при первом входе в цикл? blink.gif
        Правильно - чёрте чему. tongue.gif
          и вообще что такое n?
          в него ведь действительно ничего не записывается..
            n остался еще от прошлого варианта проги. Читай //n.
            Я, кстати, сам сделал.
            CODE

            //---------------------------------------------------------------------------

            #pragma hdrstop
            #include <iostream.h>
            #include <conio.h>
            //---------------------------------------------------------------------------

            #pragma argsused
            int main()
            {
            int i=-1,d,ost,min,a;
            char ch;
            bool quit=false;

            do    
            {
              i++;
              cout << "Vvedite 4islo" << "\n";
              cin >> a;
              if (i=0)
                {
                   min=a;
                }
                d=2;

                do
                {
                   ost=a%d;
                   if (ost!=0)
                   d++;
                }
                while (ost!=0);
                if (d==a)
                {
                   //cout << a;
                   if (a<min)
                   {
                      min=a;
                   }
                }
                cout << "Eshe[Y/N]?";
                cin >> ch;
                if ((ch=='N') || (ch=='n'))
                {
                   quit=true;
                }
            }
            while (!quit);
            cout << "min=" << min;
            getch();
                   return 0;
            }
            //---------------------------------------------------------------------------

            Только почему-то если убрать запрос, то уже не работает. Как сделать, чтобы последовательность вводить не через Y/N, а через ввод?
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0201 ]   [ 16 queries used ]   [ Generated: 11.05.25, 16:42 GMT ]