![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Frog |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 11.3.2006 Где: The swamp Репутация: нет Всего: нет |
Здравствуйте господа! мне необходимо разобрать число на массив из состовляющих его цифр.
К примеру: из int а = 5432; должен получиться массив int ма[] = {5,4,3,2}; В джаве я делал так - преобразовывал int 'а' в строку , строку парсил, результатами набивал массив. Но во первых это возможно, не лучший способ даже для джавы , а во вторых в С я новичек , и как мне кажеться, тот subset языка который я сейчас изучаю (win32 для КПК) вообще "не понимает" строк и операций с ними... Посоветуйте что можно сделать - пожалуйста. |
|||
|
||||
witex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 0 Всего: 4 |
Вот поделился, что сам делал по учёбе.. не знаю уж и когда.
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Я так понял, что нужно избегать строк. Пример writex разумный, но: Динамическое определение массива мне видится через чур сильным наворотом - сэкономленные несколько байт съедаются лишним кодом. Не проще ли массив задать статически - в данном случае не вижу особой проблемы. Если использовать динамический - то нужна отдельная переменная с его длиной - лучше тогда создать стрктурку, наверное. Тогда она будет держать и само исходное число и массив его циферок и методы преобразования... |
||||
|
|||||
anwe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
Так это простой алгоритм. Допустим для десятичного числа оно разбивается на тысячи, сотни, десятки и единицы. Вот и дели на них (без перевода строки): 1573=1*1000+5*100+7*10+3.
Целое от деление - будет целым, то есть твоей цифрой, а остаток делишь на 10 в степени на 1 меньше. И так дальше. |
|||
|
||||
GIK |
|
||||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
А я вот чето вообще не вкурю этот алгоритм ![]() В первом цикле не понятно почему собирается сумма остатков от деления. Потом создается массив длинной меньше на один чем кол-во итераций. Во втором цикле, с самого начала,обращаются зачем то вообще на индекс превышающий длину массива??? И походу переменная а ни когда не дойдет до <0?
Блин, вообще не пойму ![]() -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
||||
|
|||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Мне показалось, что sum это рудимент от какого-то другого алгоритма. Первый цикл считает количество циферок, чтобы узнать размер массива под них. |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
Все, догнал
![]() -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
witex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 0 Всего: 4 |
Да делал алгоритм, для сдачи в колледже!
Надо было разбить по цыфрам, найти их количесвто и сумму чисел. GIK, "а" и не будет меньше 0, чтобы оборвать цикл достаточно чтобы "а" был равен 0. Anikmar, знаю что особого смысла динамический массив делать! тогда и одного цикла хватит! ПРото размер, нормальный задать и всё! Главное что работает! и что бы Frog понял! --------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Это сообщение отредактировал(а) MAKCim - 16.12.2006, 16:43 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
witex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 0 Всего: 4 |
zabivator, ты чё издеваешься? зачем тут вектор? это же чистое извращение! Он дольще будет работать чем мои ва цикла, в 2 раза! Не надо так издеваться!
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
FelikZ |
|
|||
![]() Старый Маразматик ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 1.12.2006 Где: Vault 13 Репутация: нет Всего: 5 |
Да, пожалуй вектор тут точно ненадо юзать!
Вариант witex'а самый гуманный ![]() -------------------- ![]() |
|||
|
||||
witex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 0 Всего: 4 |
Вопрос решён. Хотя коментов, самого автора не видели.
Но всё же,хватит пустые димагогии разводить! Закрывайте тему. --------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |