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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SunNas
Сообщений: n/a
#1

Написать программу-тестирование - C++

08.10.2012, 14:24. Просмотров 610. Ответов 2
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста!
Надо написать программу, что-то типа анкеты, в зависимости от ответов да или нет задаются следующие вопросы.
...
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
30
31
32
33
34
char yn,y;
M1:   printf("Вы живете в России? Введите 'y'=да или 'n'=нет\n");
    scanf("%c",&yn);
    printf("\nВаш ответ %c \n",yn);
    if(yn=='y')
    {
        printf("Вы живете в городе? Введите 'y'=да или 'n'=нет\n");
            scanf("%c",&y);
        
                if(y=='y')
        {
        printf("Вы горожанин\n");
        
        } 
        else
               {printf("Вы живете в деревне?\n");
               if(y=='y') printf("Вы не горожанин\n");
        }
        
    }
    if(yn=='n')
    {
        printf("Извините, в опросе принимают участие только жители России\n");
        _getch();
        return 1;
    }
    else
    {
        printf("Введены некорректные данные. Введите 'y' или 'n'\n");
        goto M1;
        
    }
    _getch();
    return 0;

Почему-то, если на вопрос "Вы живете в России?" ответить "y", задается второй вопрос "Вы живете в городе?" и, не дожидаясь ответа происходит выход из программы. Из-за чего так происходит?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 14:24     Написать программу-тестирование
Посмотрите здесь:

Написать программу «Тестирование знаний» (Visual C++) - C++
Программа «Тестирование знаний». Создать программу для тестирования знаний по любому предмету. Вопросы и варианты ответов должны храниться...

Разработать программу, выполняющую тестирование работоспособности модуля - C++
Здравствуйте, нужна ваша помощь. Программа не требует пользовательского интерфейса. Тестирование работоспособности модуля осуществляется на...

Написать программу на С++ - C++
можете помочьПользователь вводит положительные числа. Подсчитать сумму этих чисел и вывести результат на экран. Подсчет суммы закончить,...

Написать программу - C++
Помогите написать программу в С++ Вводится целое положительное число. Найти наибольшую цифру числа.

Написать программу - C++
Помогите кому не сложно, нужно написать программу в С++ Вывести на экран таблицу значений удвоенных синусов в диапазоне от −a до a ...

Написать программу - C++
Нужно срочно написать программу С++ Вычисление значения функции Дано вещественное число а. Для функции y=f(x), график которой...

написать программу - C++
дана матрица из оценок 5х7(5 предметов, 7 учеников). определить кол-во учеников, которые имеют не более одной оценки 3.

Написать программу - C++
написать программу вы числящую сумму всех элементов матрицы целых чисел 3х3,расположенных над главной диагональю.Рнзультат вывести на экран

Написать программу в C++ - C++
При вирішенні задачі, використовувати всі типи циклів (for, while, do while). Дана послідовність цілих чисел, за якою слідує 0. Знайти...

Написать программу в C++ - C++
1 Студенты выполнили задание за которое каждый из них получили балл в диапозоне от 1 до 100. Эти значения должны быть переведены в шкалу...

Написать программу на C++ - C++
1) Дан вектор N (12). Найти минимальный элемент среди отрицательных и разделить на него все положительные элементы. 2) Дана матрица B....

Написать программу по вычислению - C++
Написать программу по вычислению длинны круга С=2*Pi*R Pi- константа и равна 3.14 R - радиус окружности (входной параметр)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
08.10.2012, 14:43     Написать программу-тестирование #2
Потому что первый раз если ввести 'y' и нажать enter, в считается 1 символ, а введено было больше(перевод на новую строку) и при следующем вызове функции scanf считается перевод на новую строку, и это не подойдет под следующие условия.
C++
1
2
3
4
5
char y[2];
scanf("%s", y);
if (y[0] == 'y') {
 
}
такой способ не хороший, потому что при вводе больше 1 символа (без учета перевода на новую строку) будет утечка памяти.
SunNas
Сообщений: n/a
09.10.2012, 11:05     Написать программу-тестирование #3
Спасибо огромное!!! Очень помогли!!!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru