Предмет: Информатика,
автор: IlmirBatkaev
С++
Напишите программу, которая выводит на экран все цифры числа, начиная с первой.
Допустим, вводишь 123, а программа выводит 1 2 3.
contrlc:
Что сложного?)
ну вот так) помогите..
Ответы
Автор ответа:
1
Один из простых методов.
#include <iostream>
void digits(const unsigned &val)
{
if (val) {
std::cout << (digits(val / 10), val % 10) << " ";
}
}
int main()
{
digits(123);
return 0;
}
#include <iostream>
void digits(const unsigned &val)
{
if (val) {
std::cout << (digits(val / 10), val % 10) << " ";
}
}
int main()
{
digits(123);
return 0;
}
Если можно проще и с комментариями (для чайников). А так спасибо.
Тут обычная рекурсивная функция. Если не знаете что это, то лучше в интернете почитать или видео посмотреть)
Дело в том, что она выдает именно 123. А это был лишь пример, ибо при вроде 1488 должно выводиться 1 4 8 8.
#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;
}
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;
}
Вы хоть немного знаете c++?
спасибо за дополнение, а автору желаю хотя бы обучающие ролики на ютубе посмотреть коих много и уже молчу о чтении какой-то книги.
Автор ответа:
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();
}
}
#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();
}
}
Ребят, можно проще? Пожалуйстаа.... А так огромное спасибо.
Ахах я специально усложнил)
Зато познавательно)
Ну мне от усложнений не лучше. Если можете, то, пожалуйста, понятнее.
Похожие вопросы
Предмет: Қазақ тiлi,
автор: aiaruajikul
Предмет: Литература,
автор: ILoshpedina
Предмет: Биология,
автор: llordssss
Предмет: Математика,
автор: маня149
Предмет: Математика,
автор: Аноним