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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
28.07.2014, 20:15     Вывод числа в столбик с первой цифры, без массива, без строк #1
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
#include <iostream>
#include <math.h>
using namespace std;
void p(long a)
{ 
long i=0,z=a;
    while (z)
    {
       z/=10;  
       i++; //êîëè÷åñòâî öèôð ГўГ® ââåäåГ*Г*îì ÷èñëå 
    } 
    
    for (i;i>0;i--)
      {
        cout<<abs(a/(long (pow(10,i-1)))%10)<<endl; 
        }
    
}
int main(void)
{ 
     setlocale (0,""); long  n;
     cout<<"n="; cin>>n;
     p(n);
     system ("PAUSE");
}
подскажите , что у меня не правильно?

Добавлено через 1 минуту
задание: напишите процедуру, которая выводит на экран в столбик все цифры переданного ей числа, начиная с первой
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2014, 20:15     Вывод числа в столбик с первой цифры, без массива, без строк
Посмотрите здесь:

Вывод числа в столбик (без использования строковых переменных) C++
Посимвольная проверка строк без массива C++
Без операторов цикла вывести цифры числа через пробел C++
Оператор for, без if (Напишите программу, суммирующую числа в указанном пользователем диапазоне, но без оператора if, который устанавливает границы) C++
Вывести в цикле те цифры числа, которые не делятся на 3 без остатка. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
28.07.2014, 23:38     Вывод числа в столбик с первой цифры, без массива, без строк #21
Mr.X, gcc 4.7.3 так же не ест код.
Код
test.cpp: In function ‘void print_number_in_column(T_int)’:
test.cpp:10:64: error: third operand to the conditional operator is of type ‘void’, but the second operand is neither a throw-expression nor of type ‘void’
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2803 / 1579 / 247
Регистрация: 03.05.2010
Сообщений: 3,669
28.07.2014, 23:45     Вывод числа в столбик с первой цифры, без массива, без строк #22
Цитата Сообщение от Toshkarik Посмотреть сообщение
Mr.X, gcc 4.7.3 так же не ест код.
И вы с ним согласны?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
28.07.2014, 23:49     Вывод числа в столбик с первой цифры, без массива, без строк #23
Из-за приоритета операций.
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.

Добавлено через 58 секунд
Цитата Сообщение от Mr.X Посмотреть сообщение
И вы с ним согласны?
А почему нет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2014, 00:02     Вывод числа в столбик с первой цифры, без массива, без строк
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
 Аватар для Mr.X
2803 / 1579 / 247
Регистрация: 03.05.2010
Сообщений: 3,669
29.07.2014, 00:02     Вывод числа в столбик с первой цифры, без массива, без строк #24
Цитата Сообщение от 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
}
Yandex
Объявления
29.07.2014, 00:02     Вывод числа в столбик с первой цифры, без массива, без строк
Ответ Создать тему
Опции темы

Текущее время: 00:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru