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

Вывод числа в столбик с первой цифры, без массива, без строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно исправить задачку на замену значений (swap) http://www.cyberforum.ru/cpp-beginners/thread1235477.html
#include<iostream> using namespace std; int f(int a, int b); int main() { int x = 5; int c = 55; cout << x << ' ' << c << endl; f(x, c); cout << x << ' ' << c << endl;
C++ При вызове функции Sides () которая по сути должна менять переменные члены класса — ничего не происходит Всем привет! Такой вопрос, в листинге объявлен класс Rect и определен объект theRect. При вызове функции Sides() которая по сути должна менять переменные члены класса - ничего не происходит, остаются... http://www.cyberforum.ru/cpp-beginners/thread1235425.html
Оптимизация за счёт устранения временных объектов при использовании операторов C++
Доброго времени суток! Вопрос в следующем: существует совет по оптимизации: "Не создавайте временных объектов" со следующими поястнениями: "Временные объекты создают, к примеру, вот таким...
Sort vector, сортировка по двум полям структуры C++
Поскажите как отсортировать если: struct DATA{ string fir; string sec; double sm; }; vector <DATA> vec; vector <DATA>::iterator itv; bool myfunction (DATA i,DATA j) { return...
C++ Удаление элемента односвязного списка http://www.cyberforum.ru/cpp-beginners/thread1235368.html
Здравствуйте. Написал вот такой код. В программе происходит создание списка, вывод его на экран, а так же удаление первого элемента, меньшего заданного числа. Вот как раз с удалением возникла...
C++ Прокомментировать код. QuickSort Напишите пожалуйста как можно подробнее комментарии к каждой строке, а то я точно чайник и мало что понимаю #include <iostream> #include <cstring> using namespace std; void... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
29.07.2014, 00:02
Цитата Сообщение от Toshkarik Посмотреть сообщение
Из-за приоритета операций.
Код C++
1
print_number_in_column( n / 10 ), abs(n % 10)
нужно взять в скобки. Иначе сначала вычисляется
Код C++
1
2
3
abs(n) < 10
? n
: print_number_in_column( n / 10 )
и потом только abs.
А, да, точно. Запятой не пользуюсь никогда, поэтому и лопухнулся. Погнался за сишной краткостью строк и заменил if тернарным оператором. Вот и последствия от злоупотреблений низкоуровневыми вычислениями.

Добавлено через 5 минут
По-человечески это так должно выглядеть:
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
/////////////////////////////////////////////////////////////////////////////////////////
//задание: напишите процедуру, которая выводит на экран в столбик все цифры переданного 
//ей числа, начиная с первой
/////////////////////////////////////////////////////////////////////////////////////////
#include <cmath>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
typedef long long   T_int;
/////////////////////////////////////////////////////////////////////////////////////////
void    print_number_in_column( T_int   n )
{
    if( abs(n) < 10 )
    {
        std::cout   <<  n;
    }
    else
    {
        print_number_in_column( n / 10 );
        std::cout   <<  abs(n % 10);
    }
    std::cout   <<  std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        T_int   n   =   0;
        std::cout   <<  "n = ";
        std::cin    >>  n;
 
        print_number_in_column(n);
        std::cout   <<  std::endl;
    }//for
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru