Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 4

Проделать заданные операции с цифрами числа, введённого пользователем с клавиатуры

28.01.2017, 01:28. Показов 1642. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попытался решить данную задачу, столкнулся с проблемой: когда есть while и после него идет for, то последний работает некорректно

пользователь вводит с клавиатуры число, число считывается в переменную;
определить число цифр в числе вывести его на экран;
нужно разбить число на цифры и вывести их через пробел (прямой порядок);
а также вывести их обратном порядке;
получить сумму чисел входящих в число, вывести ее на экран;
получить произведение чисел входящих в число, вывести ее на экран;
найти минимальную и максимальную цифру, входящую в число;
определить позиции минимальной и максимальной цифры в числе;
отсортировать цифры и вывести упорядоченную последовательность.
предоставить пользователю возможность осуществить поиск, есть ли в числе определенная цифра.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.01.2017, 01:28
Ответы с готовыми решениями:

Реализовать заданные операции с цифрами указанного числа
с клавиатуры вводится целое число. Выполнить задания: 1) вывести на экран все цифры числа 2) найти максимальную цифру числа 3) найти...

Чётные и нечётные числа: определить чётность числа, введённого пользователем с клавиатуры
Пользователь вводит с клавиатуры число. Вывести на экран Y, если число четное и N, если число не четное. с++

Найти все появления заданного числа, введенного пользователем с клавиатуры
Генерация массива из 30 случайных чисел в диапазоне от 0 до 100, вывод его на экран и найти все появления заданного числа, введенного...

8
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
28.01.2017, 01:51
Цитата Сообщение от vulcaan Посмотреть сообщение
Попытался решить данную задачу, столкнулся с проблемой: когда есть while и после него идет for, то последний работает некорректно
Вы покажите код и более точно охарактеризуйте проблему. Код не забудьте обрамить тегами.
0
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 4
28.01.2017, 02:02  [ТС]
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
#include <iostream> 
#include "stdafx.h" 
#include <Windows.h> 
#include <stdio.h>
using namespace std; 
int main() 
{ 
SetConsoleTitle(L"hello world"); 
setlocale(0, ""); 
int n = 0;
int i = 0;
cout << "Введите число: "; 
cin >> n; 
cout << "Обратный порядок ";
while(n)
{
    cout << n%10 << " ";
    n/=10;
}
    cout << endl;
for(;n>0;i++)
{
n/=10;
}
cout << "В этом числе " << i << " цифры" << endl;
system("pause");
}
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.01.2017, 02:29
Цитата Сообщение от vulcaan Посмотреть сообщение
while(n)
Цикл завершается, когда n обращается в нуль.
Цитата Сообщение от vulcaan Посмотреть сообщение
for(;n>0;i++)
Цикл крутится пока n не обратится в нуль... ах да, n же стало нулем еще в цикле whie. Так что цикл for закономерно не крутится. А вы чего ждали то?
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12922 / 6789 / 1818
Регистрация: 18.10.2014
Сообщений: 17,176
28.01.2017, 07:25
Цитата Сообщение от vulcaan Посмотреть сообщение
столкнулся с проблемой: когда есть while и после него идет for, то последний работает некорректно
И в чем же заключается "некорректность" работы for?
0
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 4
28.01.2017, 10:31  [ТС]
и как это исправить?
0
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
28.01.2017, 13:17
Цитата Сообщение от vulcaan Посмотреть сообщение
и как это исправить?
Например, оформить ваш while и остальные подзадания в виде функций, куда будет передаваться ваше число по значению,а значит, будет создаваться его копия, а значит,что с n из main ничего происходить не будет.
Или же плодить копии,которые будут содержать первоначальное значение n.
Ведь после while ваше число,как вам уже сказали,обращается в 0.
0
 Аватар для FreeYourMind
147 / 147 / 104
Регистрация: 13.11.2016
Сообщений: 557
28.01.2017, 13:25
Цитата Сообщение от vulcaan Посмотреть сообщение
и как это исправить?
как вариант создать вторую переменную и инициализировать ее значением введенного числа.. для одного цикла использовать одну переменную, для другого - вторую..
типо так
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
#include <iostream> 
#include <Windows.h> 
#include <stdio.h>
using namespace std; 
int main() 
{ 
SetConsoleTitle(L"hello world"); 
setlocale(0, ""); 
int n = 0;
int i = 0;
cout << "Введите число: "; 
cin >> n; 
int n1=n;
cout << "Обратный порядок ";
while(n1)
{
    cout << n1%10 << " ";
    n1/=10;
}
    cout << endl;
for(;n>0;i++)
{
n/=10;
}
cout << "В этом числе " << i << " цифры" << endl;
system("pause");
}
0
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
28.01.2017, 13:30
Цитата Сообщение от vulcaan Посмотреть сообщение
и как это исправить?
Вот так будет выглядеть первая функция :
Кликните здесь для просмотра всего текста
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
#include <iostream> 
#include <Windows.h> 
#include <stdio.h>
using namespace std;
 
 
void to_output_digits(int number, int *quantity);
int main()
{
    int number;
    cout << "Input the number : ";
    cin >> number;
    
    int quantity = 0;//to count how many digits nunber contains
    to_output_digits(number,&quantity);
 
    cout << "Number contains " << quantity << " digits!" << endl;
 
    system("pause");
    return 0;
}
 
 
void to_output_digits(int number , int*quantity)
{
    cout << "Here is the digits :  ";
    while (number)
    {
        ++*quantity;
        cout << number % 10 << " ";
        number /= 10;
    }
    cout << endl;
}

Как вы видите,считать цифры можно одновременно с разделением числа на цифры.
Если вы хотите сделать всё задание вам лучше разобраться с функциями,чем плодить копии для каждого пункта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.01.2017, 13:30
Помогаю со студенческими работами здесь

Создать программу, которая благодаря рекурсии будет вычислять факториал числа, введённого пользователем с клавиатуры
Создать программу, которая с помощью рекурсии будет вычислять факториал числа, введённого пользователем с клавиатуры

Задачи операции Div и Mod. Определить остаток от деления цифр двухзначного числа, введенного с клавиатуры.
Задача - 1. Определить сумму крайних цифр двухзначного числа, введенного с клавиатуры. Задача - 2. Определить остаток от деления цифр...

Даны три трёхзначных числа, заданные случайным образом. Вывести на экран 3 числа, записанные цифрами наоборот
Даны три трёхзначных числа, заданные случайным образом. Вывести на экран 3 числа, записанные цифрами наоборот использовать...

Вводить с клавиатуры 10 целых чисел,выдать на экран те числа,которые меньше введенного с клавиатуры числа,и их сумму
1ая программа. вводить с клавиатуры 10 целых чисел,выдать на экран те числа,которые меньше введенного с клавиатуры числа,и их сумму ...

Вывод введенного пользователем с клавиатуры символа на экран
Добрый день. Нуждаюсь в помощи\совете, есть такая задача: Написать программу, которая выводит на экран введенный с клавиатуры символ N...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru