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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать список.Вывести на экран сначала эл-ты кратные 5,затем эл-ты кратные 7 http://www.cyberforum.ru/cpp-beginners/thread961757.html
Насколько знаю,есть какие-то шаблонные списки.Так вот он не нужен.Нужно вручную,допустим список целых чисел.Надеюсь,верно написала...
C++ Что же это такое ? подскажите что это такое: int (**myint)(); myint = &address; // address это Dll+0x00C060 SendPing((int)&myint); address указатель на функцию int Func(void *) http://www.cyberforum.ru/cpp-beginners/thread961732.html
C++ Ошибка в коде
#include <iostream> using namespace std ; int h,m,a,b,c; int main() { setlocale (0, "rus"); cout << "Введите часы:" << endl; cin >> h; cout << "Введите минуты:" << endl; cin >> m;
C++ friend классы
Доброго времени суток форумчани. Вот потихоньку учу C++, добрался до дружественных функций и классов. Вроде бы все ясно, но все равно не могу понять как оно работает?? и нужно ли вообще? Пересмотрел...
C++ Опять тестовая оболочка - рандом http://www.cyberforum.ru/cpp-beginners/thread961727.html
Написала тест, спасибо Культину, но преподавателя не устраивает. Нужно считывать вопросы с файла с помощью рандома. В тесте 50 вопросов, выбираем их количество а потом генерируем номер каждого...
C++ Создание и использование классов.Работа над ошибками Задали сделать програмку. Вроде бы ничего сложного. Но выбивает ошибки( 1. Дано действительное число a и целое n. Вычислить сумму 1/a+1/a*(a+1)*(a+2) + 1/(a*(a+1)*(a+2)+...+(a+n)) составила... подробнее

Показать сообщение отдельно
EVP
322 / 244 / 43
Регистрация: 14.12.2010
Сообщений: 466
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru