Форум программистов, компьютерный форум CyberForum.ru

Компьютер угадывает число - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Автоматические тесты http://www.cyberforum.ru/cpp-beginners/thread782788.html
Добрый вечер. Пишу для курсового проекта автоматические тесты для одной формы довольно обширного проекта. Есть функция, проверяющая текущий трек(проект связан с радиолокацией). Функция: void TFormWaves::CheckTrack(AnsiString TrackNum) { if (TrackNum == "") { //ShowMessage("Введите номер трассы!");
C++ Найти: средний результат; всех воспитанников заданного тренера помогите написать задание. Представить данную в варианте информацию в виде структуры. Реализовать функции считывания из файла/консоли и записи в файл/консоль полученной структуры. Сформировать набор данных (массив), где каждый элемент является разработанной структурой. Этот набор тоже может быть оформлен как структура. Участник спортивного соревнования: фамилия, фамилия тренера и результат.... http://www.cyberforum.ru/cpp-beginners/thread782774.html
из Си С++ C++
Привет всем, народ хелпание с переделыванием кода из си в с++, вроде все правильно переделал, а программа перестает работать как надо... // kursa4.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "iostream.h" #include "stdio.h" #include "conio.h" int main()
При передаче ссылки на указатель программа зависает C++
Почему это не работает (точнее работает но зависает т.к. в set_val_to23() ссылка на указатель val передаётся со значением 0: main(): void set_val_to23(int* &val) { *val=23; } int main() { try {
C++ Ошибка в коде http://www.cyberforum.ru/cpp-beginners/thread782747.html
Здравствуйте. В книге "ООП" Р. Лафоре, в главе 6 есть программка. Которая не хочет запускаться. Сперва набирал сам, после "долгих мучений" решил запустить оригинальный код посмотреть или запуститься - увы. Запускал в CB и в VS. msoftcon.h и msoftcon.cpp файлы закинул в папку с проектом. Топ получился очень длинный, если модератор как-то сможет уменшить - буду благодарен : ( Вот сам код:...
C++ Бинарные файлы 2) Даны упорядоченные бинарные файлы "f.bin" и "g.bin", содержащие целые числа типа int. Например, f = <1,1,2,4,4,4,5> g = <1,1,3,4,6,6,7,7,7> 2A) создать упорядоченный бинарный файл "A.bin" с НЕ пересекающимися компонентами из f и g, то есть <2,3,6,6,7,7,7> 2B) создать упорядоченный бинарный файл "B.bin" c пересекающимися компонентами из f и g, то есть <1,4> 2С) создать упорядоченный... подробнее

Показать сообщение отдельно
SaFaiR
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 1
20.11.2015, 20:59
Решал я задачу долго, но вывел алгоритм для того, что бы ровно за 7 вопросов, программа могла точно сказать, какое число загадал ползователь. Самую большую проблему составило решить проблему "потери" единицы в результате повторного деления целочисленого числа на 2
Кликните здесь для просмотра всего текста
(25/2=12 (тут 0,5 "пропадает", и после 12 / 2 = 6; 6 / 2=3; 3 / 2 = 1 (вот и вторая "половинка", которая сумарно приводила к потере 1-цы)

Поэтому в 6-ой итерации добавил 1-цу.
Так же изза того, что алгоритм предполагает только строгое неравенство, то в последней итерации у нас возникает ситуация, когда у компьютера осталось на выбор два числа. опустим 47 и 48. Компьютер задает вопрос, "Ваше число больше 47?", то в случае утвертительного ответа добавляется единица, в случае отритцания - ничего сделано это потому, что в алгоритме на 7-ой итерации снова "теряется" едница в случае положительного ответа.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
#include "std_lib_facilities.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    int number=100;
    char answer;
    for(int i=0;i<7;++i)
        {
            cout << "Does your number is bigger than "<< number/2 << " ?\n";
            cin >> answer;
            if(i==5)
                number=number+1;
            if(answer=='y')
                {
                    number=number+100/pow(2,(i+1));
                    if(i==6)
                        number=number/2+1;
                }
                else if (answer=='n')
                        {
                            number=number-100/pow(2,(i+1));
                            if(i==6)
                                number=number/2;
                        }
        }
    cout << "Your number is: " << number << endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru