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

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

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

Написать программу, выводящую на экран разряды введенного числа и их сумму.
То есть, если пользователь ввел число 3746, программа выдаст следующее:
6
4
7
3
Сумма чисел : 20;
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2014, 22:04
Ответы с готовыми решениями:

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

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

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

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

11
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,983
21.01.2014, 22:05 2
используй деление на 10 и остаток от деления на 10
0
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 8
21.01.2014, 22:16  [ТС] 3
Можно мне как чайнику скрин программы?)
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 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
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,983
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
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 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
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,983
21.01.2014, 22:53 7
Цитата Сообщение от mustimur Посмотреть сообщение
А я и не претендую на единственность решения)))
а я тебе ничего и не говорю
это для ТС
Цитата Сообщение от mustimur Посмотреть сообщение
goto ps10;
моветон
а еще можно рекурсией
перевод числа в строку
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
21.01.2014, 22:59 8
Цитата Сообщение от ValeryS Посмотреть сообщение
перевод числа в строку
мне нравится, но сумму находить экзотично придется
Цитата Сообщение от ValeryS Посмотреть сообщение
а еще можно рекурсией
Сильная штука, я ее на определители первый раз опробовал, но ей только новичкам показывать и пугать объяснением)))
0
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,983
21.01.2014, 23:03 9
Цитата Сообщение от mustimur Посмотреть сообщение
мне нравится, но сумму находить экзотично придется
Да че там экзотичного
C++
1
2
for(int i=0,str[i],i++)
  sum+=str[i]-'0';
непривычно, да
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
21.01.2014, 23:15 10
Цитата Сообщение от ValeryS Посмотреть сообщение
Да че там экзотичного
Вычитать символ это не экзатично ли?)) Я такое ни очень люблю: понятно что кодировка цифр подряд идет, но все равно взгляд режет)
0
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,983
21.01.2014, 23:23 11
Цитата Сообщение от mustimur Посмотреть сообщение
Вычитать символ это не экзатично ли?))
неа
вот так более экзотично
C++
1
2
for(int i=0,str[i],i++)
   sum+=str[i]&0x0F;
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
21.01.2014, 23:29 12
это уже по-китайски или японски иероглифы пошли. Только клинопись на ассемблере не показывай)))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2014, 23:29

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

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

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

Найти разряды числа если разряд равен 5 или 7 то сделать его 0
Найти разряды числа если разряд равен 5 или 7 то сделать его 0 с++ Добавлено через 45 секунд...


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

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

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