Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 08.09.2013
Сообщений: 62

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

25.09.2013, 01:41. Показов 706. Ответов 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
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2013, 01:41
Ответы с готовыми решениями:

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

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

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

7
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
25.09.2013, 02:25
Цитата Сообщение от Cclassic Посмотреть сообщение
вот сделал ну счетает тока одну цифру помогите найти следующие жилательно через IF
Вместо 10ой строчки:
C++
1
2
#define IF while
    IF (n > 0) {
0
0 / 0 / 0
Регистрация: 08.09.2013
Сообщений: 62
25.09.2013, 11:29  [ТС]
Цитата Сообщение от EVP Посмотреть сообщение
Вместо 10ой строчки:
C++
1
2
#define IF while
    IF (n > 0) {
есть еще варианты без инклудов строго if
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
25.09.2013, 11:39

Не по теме:

EVP, :good:


Cclassic, может вам надо просто заменить if на while?
Или поискать по форуму?
0
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
25.09.2013, 16:45
Цитата Сообщение от 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;
}


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

Удачи.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
25.09.2013, 16:50
EVP, к сожалению в двадцать восьмой строке косяк. А мысль отличная.

Добавлено через 1 минуту
Можно еще while-ом проверять, побитово смещая. Хотя это какая-то хрень.
0
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
25.09.2013, 17:10
Цитата Сообщение от SatanaXIII Посмотреть сообщение
к сожалению в двадцать восьмой строке косяк.
Что за косяк? Cтудия 2012 не видит ошибок.
Хм. goto страшен сам по себе, конечно, но переход нужен в данном случае (условие про 'if' от ТС, поэтому синтаксические циклы не рассматривались как кандидаты на решение).
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
26.09.2013, 08:49
Цитата Сообщение от EVP Посмотреть сообщение
Что за косяк?
Использование if.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2013, 08:49
Помогаю со студенческими работами здесь

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

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

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

Запрет ввода всего кроме положительных цифр
Пожалуйста, помогите разобраться. Необходимо разрешить ввод только чисел (положительных). в коде: int a, b; cout &lt;&lt;...

Ввод только цифр (защита от некорректного ввода)
Помогите, пожалуйста) Мне завтра сдавать надо. Где-то видел (может, это на C#?) функцию (может, не так назвал), которая пытается...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru