Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Anton240971
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 8
1

Деление числа на разряды

21.01.2014, 22:04. Просмотров 1476. Ответов 11
Метки нет (Все метки)

Написать программу, выводящую на экран разряды введенного числа и их сумму.
То есть, если пользователь ввел число 3746, программа выдаст следующее:
6
4
7
3
Сумма чисел : 20;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 22:04
Ответы с готовыми решениями:

Деление числа на разряды
Дан массив из n натуральных четырёхзначных чисел. Вывести на экран только те, у...

Универсальное деление на разряды
Здравствуйте, нужна помощь с делением на разряды, цели: Нужно чтобы делилось...

Разделение числа на разряды
Подскажите,алгоритм программы,которая выполняет разделение числа на разряды....

Вывести все разряды числа наоборот
Задача: вывести все разряды числа наоборот. Допустим 9876 И оно должно...

Вывод числа с разбитием на разряды (cout)
Добрый время суток! Вот чую зря создавал новую тему но все же... Вот...

11
ValeryS
Модератор
7277 / 5530 / 693
Регистрация: 14.02.2011
Сообщений: 18,734
21.01.2014, 22:05 2
используй деление на 10 и остаток от деления на 10
0
Anton240971
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 8
21.01.2014, 22:16  [ТС] 3
Можно мне как чайнику скрин программы?)
0
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 22:26 4
Цитата Сообщение от Anton240971 Посмотреть сообщение
Можно мне как чайнику скрин программы?)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    int x,k,s=0;
std::cin>>x; 
    do
    {
        k=x%10;
        x/=10;
        s+=k;
        std::cout<<k<<"\n";
    }
    while (x>10);
    std::cout<<x<<"\n";
    s+=x;
    std::cout<<"Summa:"<<s<<"\n";
    std::system("Pause");
}
0
ValeryS
Модератор
7277 / 5530 / 693
Регистрация: 14.02.2011
Сообщений: 18,734
21.01.2014, 22:31 5
Цитата Сообщение от mustimur Посмотреть сообщение
do
{
k=x%10;
x/=10;
s+=k;
std::cout<<k<<"\n";
}
while (x>10);
то же самое с циклом while
C++
1
2
3
4
5
6
7
while(x)
{
k=x%10;
x/=10;
s+=k;
std::cout<<k<<"\n";
}
с циклом for
C++
1
2
3
4
5
6
for(;x;x/=10)
{
k=x%10;
s+=k;
std::cout<<k<<"\n";
}
0
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 22:50 6
Цитата Сообщение от ValeryS Посмотреть сообщение
то же самое с циклом while
А я и не претендую на единственность решения))), можно вообще без цикла если мы упражняемся в кодопесании:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    int x,k,s=0;
std::cin>>x; 
   
 ps10: 
      k=x%10;
        x/=10;
        s+=k;
        std::cout<<k<<"\n";
    
    if (x>10) goto ps10;
    std::cout<<x<<"\n";
    s+=x;
    std::cout<<"Summa:"<<s<<"\n";
    std::system("Pause");
}
Добавлено через 1 минуту
в смысле явно объявленного цикла
0
ValeryS
Модератор
7277 / 5530 / 693
Регистрация: 14.02.2011
Сообщений: 18,734
21.01.2014, 22:53 7
Цитата Сообщение от mustimur Посмотреть сообщение
А я и не претендую на единственность решения)))
а я тебе ничего и не говорю
это для ТС
Цитата Сообщение от mustimur Посмотреть сообщение
goto ps10;
моветон
а еще можно рекурсией
перевод числа в строку
0
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 22:59 8
Цитата Сообщение от ValeryS Посмотреть сообщение
перевод числа в строку
мне нравится, но сумму находить экзотично придется
Цитата Сообщение от ValeryS Посмотреть сообщение
а еще можно рекурсией
Сильная штука, я ее на определители первый раз опробовал, но ей только новичкам показывать и пугать объяснением)))
0
ValeryS
Модератор
7277 / 5530 / 693
Регистрация: 14.02.2011
Сообщений: 18,734
21.01.2014, 23:03 9
Цитата Сообщение от mustimur Посмотреть сообщение
мне нравится, но сумму находить экзотично придется
Да че там экзотичного
C++
1
2
for(int i=0,str[i],i++)
  sum+=str[i]-'0';
непривычно, да
0
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 23:15 10
Цитата Сообщение от ValeryS Посмотреть сообщение
Да че там экзотичного
Вычитать символ это не экзатично ли?)) Я такое ни очень люблю: понятно что кодировка цифр подряд идет, но все равно взгляд режет)
0
ValeryS
Модератор
7277 / 5530 / 693
Регистрация: 14.02.2011
Сообщений: 18,734
21.01.2014, 23:23 11
Цитата Сообщение от mustimur Посмотреть сообщение
Вычитать символ это не экзатично ли?))
неа
вот так более экзотично
C++
1
2
for(int i=0,str[i],i++)
   sum+=str[i]&0x0F;
0
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 23:29 12
это уже по-китайски или японски иероглифы пошли. Только клинопись на ассемблере не показывай)))
0
21.01.2014, 23:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2014, 23:29

В каждом байте числа зеркально поменять местами разряды
Задание: в одномерном массиве чисел целого типа (32 бит) выполнить следующую...

Зеркально поменять местами разряды младшего байта каждого числа
Добрый день. Помогите пожалуйста решить задачу, весьма срочно, родина вас не...

Определить сумму цифр во второй половине натурального числа (младшие разряды)
Дано натуральное число N(N &gt; 9). Определить сумму цифр во второй половине числа...


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

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

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