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

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

Войти
Регистрация
Восстановить пароль
 
Cclassic
0 / 0 / 0
Регистрация: 08.09.2013
Сообщений: 62
#1

Подчет каличество цифр ввода - C++

25.09.2013, 01:41. Просмотров 320. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include <iostream>
    using namespace std;
 
int main()
{
    int n;
    int count = 0;
    cin >> n;
 
    if (n > 0) {
        count = count + 1;
        n = n / 10;
    }
    cout << count;
    system("pause");
    return 0;
}

вот сделал ну счетает тока одну цифру помогите найти следующие жилательно через IF
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 01:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подчет каличество цифр ввода (C++):

Проверрка ввода римских цифр - C++
Не знаю как реализовать следующее: Мы вводим римское число и программа отвечает, верно ли оно. Допустим V - верно, IIIIV - не верно

Защита от ввода цифр/букв - C++
Всем доброго времени суток! Написал вот такую программу #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; const int N =...

Ограничение ввода(цифр, букв и символов) - C++
Здравствуйте ! Мне нужно сделать ограничение ввода. Я его прописал, для ввода длины и количества паролей, но не могу для ввода куда...

Запрет ввода символов, отличных от цифр - C++
Нужно заполнить двумерный массив только числами. Как это реализовать?

Не работает программа проверки ввода цифр - C++
Программа упорядочивает массив по убыванию. Надо было сообразить защиту от ввода НЕ цифр, кроме символа (-), вроде правильно, но не...

Ограничение ввода.(цифр, букв и символов) - C++
Мне нужно сделать ограничение ввода. Условие: 1) ввод 1, 2 или 3, если больше, то сообщение об ошибке и повторный ввод, также с...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
EVP
321 / 243 / 43
Регистрация: 14.12.2010
Сообщений: 464
25.09.2013, 02:25 #2
Цитата Сообщение от Cclassic Посмотреть сообщение
вот сделал ну счетает тока одну цифру помогите найти следующие жилательно через IF
Вместо 10ой строчки:
C++
1
2
#define IF while
    IF (n > 0) {
Cclassic
0 / 0 / 0
Регистрация: 08.09.2013
Сообщений: 62
25.09.2013, 11:29  [ТС] #3
Цитата Сообщение от EVP Посмотреть сообщение
Вместо 10ой строчки:
C++
1
2
#define IF while
    IF (n > 0) {
есть еще варианты без инклудов строго if
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
25.09.2013, 11:39 #4

Не по теме:

EVP,


Cclassic, может вам надо просто заменить if на while?
Или поискать по форуму?
EVP
321 / 243 / 43
Регистрация: 14.12.2010
Сообщений: 464
25.09.2013, 16:45 #5
Цитата Сообщение от Cclassic Посмотреть сообщение
есть еще варианты без инклудов строго if
такие варианты:

Кликните здесь для просмотра всего текста
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <assert.h>
using namespace std;
 
void testMacroDefineIF(int n)
{
    int count = 0;
#pragma push_macro("IF")
#define IF while
    IF (n > 0) {
#undef IF
#pragma pop_macro("IF")
        count = count + 1;
        n = n / 10;
    }
    cout << "Macro IF: " << count << endl;
}
 
/*
При наличии циклов в синтаксисе языка
не имеет смысла использовать следующие конструкции:
*/
void testWhileEmulation(int n)
{
    int count = 0;
start:
    if (!(n > 0))
        goto end;
    count = count + 1;
    n = n / 10;
    goto start;
end:
    cout << "while emulation: " << count << endl;
}
 
#define EXPAND_LOOP(_condition, _body) if (_condition) _body
#define EXPAND_LOOP_2(_condition, _body) EXPAND_LOOP(_condition, _body) EXPAND_LOOP(_condition, _body)
#define EXPAND_LOOP_4(_condition, _body) EXPAND_LOOP_2(_condition, _body) EXPAND_LOOP_2(_condition, _body)
/*
Некоторые компиляторы шейдеров OpenGL ES
разворачивают константные циклы примерно так:
*/
void testWhileExpand(int n)
{
    int count = 0;
 
    //Разворачивание до 4 повторов
    EXPAND_LOOP_4(n > 0,
    {
        count = count + 1;
        n = n / 10;
    })
    assert(!n);
 
    cout << "while expand: " << count << endl;
}
 
int main()
{
    int n;
    cin >> n;
    
    testMacroDefineIF(n);
    testWhileEmulation(n);
    testWhileExpand(n);
 
    system("pause");
    return 0;
}


Замечания:
Цикл есть синтаксический сахар над условием и безусловным переходом.
Если есть соответствующая синтаксическая конструкция в языке, то её следует воспользоваться.
Делать велосипед для цикла имеет смысл только при изучения работы самого цикла.

Удачи.
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
25.09.2013, 16:50 #6
EVP, к сожалению в двадцать восьмой строке косяк. А мысль отличная.

Добавлено через 1 минуту
Можно еще while-ом проверять, побитово смещая. Хотя это какая-то хрень.
EVP
321 / 243 / 43
Регистрация: 14.12.2010
Сообщений: 464
25.09.2013, 17:10 #7
Цитата Сообщение от SatanaXIII Посмотреть сообщение
к сожалению в двадцать восьмой строке косяк.
Что за косяк? Cтудия 2012 не видит ошибок.
Хм. goto страшен сам по себе, конечно, но переход нужен в данном случае (условие про 'if' от ТС, поэтому синтаксические циклы не рассматривались как кандидаты на решение).
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
26.09.2013, 08:49 #8
Цитата Сообщение от EVP Посмотреть сообщение
Что за косяк?
Использование if.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 08:49
Привет! Вот еще темы с ответами:

Напишите пожалуйста Алгоритм правильности ввода цифр - C++
Ну тоесть, чтобы он проверял ввёл я цифру или нет. Например когда я буду вводить букву , будет выходить Ошибка

Запрет ввода любых символов кроме цифр в консоли - C++
Ребята подскажите пожалуйста можно ли как-то разрешать ввод в консоль только цифр. Я делаю проверку или с помощью isdigit() или через...

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

Программа ждет ввода числа и в зависимости от количества цифр в числе выдает сообщение об их разрядности: трехзначное, пятизначное и т.д - C++
1) Программа ждет ввода числа и в зависимости от количества цифр в числе выдает сообщение об их разрядности: трехзначное, пятизначное и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.09.2013, 08:49
Ответ Создать тему
Опции темы

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