Здавствуйте, изучаю потихоньку C++ по книге Бьерна Страуструпа. В конце каждой главы есть небольшие задания, в частности есть задачка на угадывание целого числа от 1 до 100 за максимум 7 попыток. Набрасал следующий код:
#include <iostream>
#include <string>
#include <cmath>
#include <vector>
double round(double number)
{
        return int(number + .5);
}
int main()
{
        std::vector<double> a(9);
        std::vector<std::string> s(8);
        a[0] = 105; s[0] = "???";
        a[1] = 50;
        std::string c = "???";
        std::cout << "Задумайте любое целое число от '1' до '100' \n" << "Программа будет задавать вопросы, если соглашаетесь введите 'y', иначе 'n'. \n";
        for (int i=0; i < 7; ++i)
            {
/*                      for (int k = 0; k < i+1; ++k)
                          {
                                          if (a[k] == a[i+1])
                                                    {
                                                                 s[i+1]=s[k];
                                                                 c = s[i+1];
                                                                 goto metka2;
                                                    }
                           }
*/
                      std::cout << i+1<<") Задуманное число меньше " << a[i+1] <<"? Ваш ответ: " ;
                      metka1:
                      std::cin >> c;
                      s[i+1] = c;
//                    metka2:
                      double r = a[i] - a[i+1];
                      double m = pow(r,2);
                      double m1 = pow(m,0.5);
                      if (c == "y")  a[i+2] = a[i+1] - m1/2; //*
                      else if (c  == "n") a[i+2] = a[i+1] + m1/2; //*
//                    if (c == "y")  a[i+2] = round(a[i+1] - m1/2);
//                    else if (c  == "n") a[i+2] = round(a[i+1] + m1/2);
                      else goto metka1;
           }
        std::cout << "\nВы задумали число " << round(a[8]) <<"\n"; //*
//      std::cout << "\nВы задумали число " << a[8] <<"\n";
        return 0;
}
Программа работает, но не так как мне хотелось бы, а хочется, чтобы вместо рациональных чисел она выводила целые в вопросах, но фокус с округлением не удался :( (случай если закоментировать строки, которые я обозначил «*», и раскоментировать те, что закоментены в приведённом примере). Что мне нужно изменить, чтобы добиться желаемого результата? Спасибо.












