Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/92: Рейтинг темы: голосов - 92, средняя оценка - 4.95
1 / 1 / 3
Регистрация: 10.07.2014
Сообщений: 38
1

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

28.07.2014, 20:15. Показов 19202. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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 минуту
задание: напишите процедуру, которая выводит на экран в столбик все цифры переданного ей числа, начиная с первой
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2014, 20:15
Ответы с готовыми решениями:

Найти сумму первой и последней цифры в десятичной записи целого неотрицательного числа n (без использования строк)
Найти сумму первой и последней цифры в десятичной записи целого неотрицательного числа n (без...

Вывод числа в столбик (без использования строковых переменных)
Дано натуральное число N. Не используя строковые переменные, вывести в столбик это число. Для...

Нахождение первой цифры целого без знакового числа на ассемблере(в среде Visual Studio)
Дано натуральное число, не превышающее 100. Нужно найти его первую цифру. Ввод и вывод реализован...

Вывести в столбик цифры введённого числа, начиная с первой
Напишите программу, которая выводит в столбик цифры введённого числа, начиная с первой. Используйте...

23
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
28.07.2014, 23:38 21
Author24 — интернет-сервис помощи студентам
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’
0
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
28.07.2014, 23:45 22
Цитата Сообщение от Toshkarik Посмотреть сообщение
Mr.X, gcc 4.7.3 так же не ест код.
И вы с ним согласны?
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
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 Посмотреть сообщение
И вы с ним согласны?
А почему нет?
0
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
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
}
0
29.07.2014, 00:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2014, 00:02
Помогаю со студенческими работами здесь

Вывести на экран в столбик все цифры переданного ей числа, начиная с первой. Процедуры
помогите пожалуйста. нужно написать процедуру, которая выводит на экран в столбик все цифры...

Напишите программу, которая вводит на экран в столбик все цифры числа, начиная с первой
1) напишите программу которая вводит на экран в столбик все цифры числа начиная с первой

Напишите процедуру, которая выводит на экран в столбик все цифры переданного ей числа, начиная с первой
Напишите процедуру, которая выводит на экран в столбик все цифры переданного ей числа, начиная с...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru