0 / 0 / 1
Регистрация: 12.11.2017
Сообщений: 26
1

Cin в операторах if/else

30.05.2018, 17:52. Показов 5029. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно простейшая программа, которая по введённому числу "A" определяет, является ли оно чётным - если нет, выводит сообщение, что число нечётное, иначе просит ввести до какого значения "B" считать чётные элементы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main(){
    int a;
    int b;
    int *p=&a;
    cout<<"Input a"<<endl;
    cin>>a;
    if(a%2==1)
        cout<<"A is even = "<<a<<endl;
    else
        cout<<"Input b"<<endl;
        cin>>b;
        for(int *p;a<=b && a%2==0;a+=2){
        cout<<"A is odd = "<<a<<endl;
            }
    return 0;
}
Столкнулся с той проблемой, что введя нечетное значение компилятор всё равно просит ввести значение "B", хотя и не отображает cout сообщение.
Я не пойму, почему выполняется условие else, если if - true.
Спасибо)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2018, 17:52
Ответы с готовыми решениями:

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые...

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная &quot;защита от дурака&quot; на ввод....

Объясните пожалуйста как работают cin.good(), cin.sync(), cin.clear()
Такая проблема: сдаю в вуза лабораторные по программированию, писал все сам, до этого c++ не...

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть...

2
392 / 262 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
30.05.2018, 18:06 2
Лучший ответ Сообщение было отмечено Mitry как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main(){
    int a(0),b(0);
    cout << "Input a : ";
    cin >> a;
    if(a % 2){
        cout << "A is even = " << a << endl;
    } else {
        cout << "Input b : ";
        cin >> b;
    }
    while(a<b && !(a%2)){
        a += 2;
        cout << "A is odd : " << a << "\n";
    }
    for(;a<=b && !(a%2);a+=2){
        cout << "A is odd : " << a << endl;
    }
    return 0;
}
Ну ты скобки почаще расставляй. Если действие только одно - можно писать как ты : if(allala)do_smth; . А : if(asjjjsjdjd)do_smth;++i; работать не будет). Точнее будет, но не так, как ты хотел
1
0 / 0 / 1
Регистрация: 12.11.2017
Сообщений: 26
30.05.2018, 19:49  [ТС] 3
Мне первого предложения хватило с головой) Остальное лишнее, спасибо большое
0
30.05.2018, 19:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2018, 19:49
Помогаю со студенческими работами здесь

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с...

Объясните работу методов cin.getline и cin.ignore
Фрагмент программы ниже. Что делают cin.getline и cin.ignore (12-13 строки) void...

Для чего в код вводится cin.ignore после того, как cin>> уже сработало?
Доброго времени суток! Просматриваю простой код. Вводится строка типа string: фунты и дюймы Затем...

Отличие функции cin.get и cin.getline
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем, что функция get...

Проблема с cin.ignore() и cin.clear()
Есть проблема. Добавлено через 11 минут // ConsoleApplication6.cpp: определяет точку входа...

Разница между cin >> x и getline(cin, x)
Собственно код, на который я опираюсь: #include &lt;iostream&gt; using namespace std; int main() {...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru