Разбить число на цифры
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Помогите разбить 3 значное число на цифры
ответ должен выглядеть так
cout<<a<<« »<<b<<« »<<c<<endl;
Конкретно в чем проблема?
Мне кажется стоит использовать операцию остатка от деления(%). Дальше додумывай сам, алгоритм может позже распишу, если не сможешь
А обобщить на любое целое неотрицательное число и оформить в виде функции слабО? ;)
Ну можно немножко посидеть и такое запилить, но задача была четкая, 3хзначное число, разложить на 3 отдельных, задача выполнена, выдумывать что-то не собираюсь. Завтра может попробую.
Вот, на любое целое или дробное, отрицательное или неотрицательное число
// Разбиение числа на цифры
Slonopotam, ты решал задачу, исходя из некорректно понятого условия. Изначально было написано: Помогите разбить 3 значное число на цифры. Число! Т.е. предполагается, что число существует уже в виде экземпляра числового типа (int, double и родственные типы), а не в виде строки символов.
По программе.
(1) Не стоит хардкодить коды цифр и знаков. Например:
в другой кодовой таблице этим кодам могут соответствовать совсем другие символы. Более переносимый вариант:
(Полностью переносимый вариант — это сравнение с каждой из цифр в отдельности, поскольку теоретически возможны кодовые таблицы, в которых цифры не идут единым блоком. Но я с такой экзотикой не встречался. А вот с буквами национальных алфавитов такое встречается очень часто.)
(2) С десятичным разделителем всё ещё веселее. Правильным было бы запрашивать у операционной системы какой символ используется для десятичного разделителя в локали, действующей в момент запуска программы.
(3) В программе не учитывается возможность ввода чисел в «научной» форме. Например,
.758e2
— это75.8
. Подробности см. в википедии.Так что в плане универсальности твоего решения ты немного погорячился.
Но попытка засчитывается. +1 к карме ))
include <stdio.h>
include <stdlib.h>
include <string.h>
using namespace std;
int main(int argc, char** argv) {
char digs[20];
sprintf(digs, «%d», num);
if (strlen(digs) > idig)
printf («%d-th digit in %d is '%c'\n», idig, num, digs[idig — 1]);
else
printf («there is no %d-th digit in %d\n», idig, num);
return 0;
}
n — натуральное число
ответ — цифры числа отделенные пробелом
Пример
Вход: 123
Выход: 1 2 3
Подскажите почему на 100% не проходит тест
https://informatics.mccme.ru/mod/statements/view.php?id=11145&chapterid=112226#1