Предмет: Информатика, автор: IlmirBatkaev

С++

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

Допустим, вводишь 123, а программа выводит 1 2 3.


contrlc: Что сложного?)
IlmirBatkaev: ну вот так) помогите..

Ответы

Автор ответа: clinteastwood2
1
Один из простых методов.
#include <iostream>
void digits(const unsigned &val)
{
    if (val) {
        std::cout << (digits(val / 10), val % 10) << "  ";
    }
}
int main()
{
    digits(123);
    return 0;
}

IlmirBatkaev: Если можно проще и с комментариями (для чайников). А так спасибо.
contrlc: Тут обычная рекурсивная функция. Если не знаете что это, то лучше в интернете почитать или видео посмотреть)
IlmirBatkaev: Дело в том, что она выдает именно 123. А это был лишь пример, ибо при вроде 1488 должно выводиться 1 4 8 8.
contrlc: #include <iostream>

using namespace std;

void digits(const unsigned &val)
{
if (val) {
cout << (digits(val / 10), val % 10) << " ";
}
}

int main()
{
int num;
cin >> num;
digits(num);
return 0;
}
contrlc: Вы хоть немного знаете c++?
clinteastwood2: спасибо за дополнение, а автору желаю хотя бы обучающие ролики на ютубе посмотреть коих много и уже молчу о чтении какой-то книги.
Автор ответа: contrlc
1
#include <iostream>
#include <stack>

using namespace std;

void digits(int *num);

int main()
{
    int num;
    cin >> num;
    void(*ptr)(int *num);
    ptr = digits;
    (*ptr)(&num);
    return 0;
}
void digits(int *num)
{
    stack<short int> stack;
    while(*num>0)
    {
        stack.push(*num % 10);
        *num /= 10;
    }
    while(!stack.empty())
    {
        cout << stack.top() << " ";
        stack.pop();
    }
}

IlmirBatkaev: Ребят, можно проще? Пожалуйстаа.... А так огромное спасибо.
contrlc: Ахах я специально усложнил)
contrlc: Зато познавательно)
IlmirBatkaev: Ну мне от усложнений не лучше. Если можете, то, пожалуйста, понятнее.
Похожие вопросы