Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > сложение длинных чисел |
Автор: molodzo 6.1.2008, 19:10 | ||||
Помогите исправить ошибку... Пытаюсь сложить длинные числа, но они складываются неправильно!!! Вот весь код программы:
|
Автор: cardinal 6.1.2008, 19:25 | ||
Пользуйтесь тегом "код"! А для отладки есть пошаговый режим - сразу найдете ошибку... Что мне сразу в глаза бросилось, так это строка
Может в ней все и правильно, но мне она не нравится - проверьте! ![]() |
Автор: bsa 6.1.2008, 19:37 | ||
molodzo Во-первых, у тебя Borland C++ 3.1 или что-то более старое? Во-вторых, class - это тип переменных, поведение которого ты сам задаешь. Т.е. тебе не нужно делать один класс, в котором содержатся все переменные, тебе нужно сделать один класс, который является задает поведение однотипных переменных:
|
Автор: molodzo 7.1.2008, 21:28 |
У меня Borland C++ 5, но по-моему тоже глючит... Если знаете, где скачать версию поновее, буду очень благодарен! Bsa, если честно, то я мало понял, как мне может помочь переопределение сложения в данной ситуации!.. ![]() |
Автор: JackYF 8.1.2008, 00:34 |
ну рассказывай, как... или плати за телепатов ![]() |
Автор: bsa 8.1.2008, 00:50 | ||
Посмотри внимательно на код функции main() в том примере, что я привел. |
Автор: xvr 9.1.2008, 14:56 | ||
Во первых у тебя не обнулен массив c, а ты к нему прибавляешь массивы a и b Во вторых (судя по коду заполнения массивов a & b) у тебя данные в них лежат начиная с младших разрядов, но в таком случае, складывать из тоже нужно начиная с начала массива, а не с конца. |
Автор: molodzo 9.1.2008, 16:37 |
Всем спасибо!!! ![]() ![]() xvr, ты прав. Нужно было добавить: memset( a, 0, 1000*sizeof(int) ); memset( b, 0, 1000*sizeof(int) ); memset( c, 0, 1000*sizeof(int) ); |
Автор: JackYF 9.1.2008, 16:40 |
molodzo, не забывай помечать тему решённой. |
Автор: molodzo 9.1.2008, 17:23 |
Погоди ты! Очень торопишься... ![]() Дело в том, что я хочу сделать сложение вещественных чисел. Для этого создаю массивы типа не int, а CHAR, но при выводе получается "абракадабра". Как мне это исравить??????? |
Автор: cardinal 9.1.2008, 17:31 |
Пример в цифрах приведи. Если у тебя в char'aх значения ascii, то вычти 0x30 из каждого и будет тебе число... |
Автор: molodzo 9.1.2008, 17:59 |
Смотри, если массивы типа int, то 45+9=54 если ----------------- char, то 45+9=,;ok(например) |
Автор: molodzo 9.1.2008, 19:49 |
Если честно, то я не понимаю, как работать с табл. ASCII-кодов... ![]() |
Автор: cardinal 9.1.2008, 20:26 |
Ascii числа 6 например равно 0х36 (то есть char a = 0x36 это будет цифра шесть как знак), чтобы получить само число надо вычесть из 0х36 - 0х30 = 0х06, то есть 6. ![]() |
Автор: molodzo 10.1.2008, 22:57 |
Ладно. Спасибо. Но все равно ничего не получается... ![]() |
Автор: bsa 11.1.2008, 01:17 |
Вот http://forum.vingrad.ru/forum/topic-190595/15.html я привел пример сложения "длинных чисел". Если есть желание, можешь довести его до ума. |