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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
#1

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

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

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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2014, 20:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод числа в столбик с первой цифры, без массива, без строк (C++):

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

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

Определить цифры целого числа (тип числа - целое без знака) - C++
Определить цифры целого числа( тип числа-целое без знака), вычислить сумму полученных цифр. Помогите ,пожалуйста.

Вывести в цикле те цифры числа, которые не делятся на 3 без остатка. - C++
Вывести только те цифры числа, которые не делятся на 3 без остатка.

Без операторов цикла вывести цифры числа через пробел - C++
Решить не используя операторы цикла. Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке, разделяя их пробелами...

Найти сумму цифр заданного числа без учёта последней цифры через цикл while - C++
У меня есть код программы: #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; void main() { int n,s; printf(&quot;n= \n&quot;); scanf(&quot;%d&quot;,&amp;n); ...

23
-=ЮрА=-
28.07.2014, 21:18     Вывод числа в столбик с первой цифры, без массива, без строк
  #16

Не по теме:

zss, а прверять окончание цикла кто будет?

0
Mr.X
Эксперт С++
3054 / 1699 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
28.07.2014, 22:31 #17
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
/////////////////////////////////////////////////////////////////////////////////////////
//задание: напишите процедуру, которая выводит на экран в столбик все цифры переданного 
//ей числа, начиная с первой
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
typedef long long   T_int;
/////////////////////////////////////////////////////////////////////////////////////////
void    print_number_in_column( T_int   n )
{
    std::cout   <<  (
                        abs(n) < 10
                            ?   n
                            :   print_number_in_column( n / 10 ), abs(n % 10)
                    )
 
                <<  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
-=ЮрА=-
28.07.2014, 22:55
  #18

Не по теме:

Mr.X, http://ideone.com/jdPYx8

0
Mr.X
Эксперт С++
3054 / 1699 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
28.07.2014, 23:02 #19
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Не по теме:
Mr.X, http://ideone.com/IyUNqx
Ну, тут уже ругали этот компилятор. Врет он.
0
-=ЮрА=-
Заблокирован
Автор FAQ
28.07.2014, 23:19 #20
Чисто для фана
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main(){
    int val = -25504885;
    int num = 0;
    if( val < 0 )
        val *= -1;
    int pwr = 1;
    while( pwr < val)
           pwr*= 10;
    for( pwr /= 10; pwr; pwr /= 10)
    {
        if( pwr < val  )
        {
            cout<<(num = val / pwr)<<endl;
            val -= num*pwr;
        }
        else
            cout<<"0"<<endl;
    }
    return 0;     
}
http://codepad.org/ZoVxE6JX
2
5
5
0
4
8
8
5
Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, тут уже ругали этот компилятор. Врет он.
кодпад тоже отказался, правда там поддержки С+11 нет, а вот студия да собрала норм, даже 6-ая

0
Toshkarik
1148 / 865 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 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’
0
Mr.X
Эксперт С++
3054 / 1699 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
28.07.2014, 23:45 #22
Цитата Сообщение от Toshkarik Посмотреть сообщение
Mr.X, gcc 4.7.3 так же не ест код.
И вы с ним согласны?
0
Toshkarik
1148 / 865 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 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 Посмотреть сообщение
И вы с ним согласны?
А почему нет?
0
Mr.X
Эксперт С++
3054 / 1699 / 265
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2014, 00:02
Привет! Вот еще темы с ответами:

Определить все цифры в цифровой записи данного числа, на которые оно делится без остатка - C++
Дано натуральное четырехзначное число. Определить все цифры в цифровой записи данного числа, на которые оно делится без остатка. ...

Посимвольная проверка строк без массива - C++
Всем доброго времени суток, собственно, сабж: Нужно проверить 2 строки посимвольно на наличие одинаковых элементов, но без использования...

Сравнение строк без учета имеющегося в строке числа - C++
Есть строка содержащая слово и через пробел число, потом еще одно слово. Число может быть абсолютно любым, самое главное чтобы оно было....

Оператор for, без if (Напишите программу, суммирующую числа в указанном пользователем диапазоне, но без оператора if, который устанавливает границы) - C++
Напишите программу, суммирующую числа в указанном пользователем диапазоне, но без оператора if, который устанавливает верхнюю и нижнюю...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru