|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
||||||
Сложение столбиком.30.04.2011, 17:24. Показов 11355. Ответов 37
Метки нет (Все метки)
Привет всем!Я недавно начал изучать с++ и решил написать свою функцию сложения больших чисел т.е. длинную арифметику.Смысл не сложный.Мы считываем 2 числа в 2 строки в обратном порядке,получаем целочисленный тип каждого из них,складываем и записываем в 3 массив.Если результат выходит больше 9,то записываем в 3 строковую переменную <результат сложения>-10.И при следующем проходе цикла прибавляем единичку,которую записываем во флаговою переменную,а потом ее обнуляем.<-вот в этом и проблема,не хочет прибавлять эту флаговою переменную при следующем проходе цикла,ничего вообще ни прибавляет,а если изначально прибавлять к сложению единичку,то прибавляет к обеим слагаемым.Может что-то не так в цикле обратного отсета т.е. чтобы считывать с конца числа,как мы делаем это когда складываем в столбик..помогите.вот мой код:
0
|
||||||
| 30.04.2011, 17:24 | |
|
Ответы с готовыми решениями:
37
Сложение столбиком
Калькулятор. Деление столбиком |
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
|
| 30.04.2011, 19:12 [ТС] | |
|
Ну а вообще как должно выглядить прибавление 1 к старшему разряду,как это в моем коде написать???
т.е. у нас если сумма будет выходить больше 9,то во флаговою переменн. мы запишем 1,и при следующкм проходе цикла надо добавть эту флаговою переменную к сумме,а потом обнулить???как это решается?
0
|
|
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
||
| 30.04.2011, 19:16 [ТС] | ||
|
я уже посмотрел а поподробнее можно что значит вот это
но спасибо=))))))
0
|
||
|
Higher
|
|
| 30.04.2011, 19:20 | |
|
У меня выводит 30
о_О Вы же в своем цикле увеличивали свой флаг, но делали это исключительно для инкремента следующего разряда. В последней итерации идет проверка нулевого элемента, и если он больше 9, то флаг увеличивался, но т.к. следующей итерации не было, то он не обнулялся. Таким образом, если флаг не равен нулю(что и означает (flag) ), то к числу необходимо приписать спереди 1. P.S. сам не понял что написал, ну да ладно
1
|
|
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
|||
| 30.04.2011, 19:23 [ТС] | |||
0
|
|||
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
|||
| 30.04.2011, 19:26 [ТС] | |||
|
эт,а литературы какой по этому нету????а то мне вот это вот надо бы понять...
я ведь только начал учится..
0
|
|||
|
Higher
|
||||||
| 30.04.2011, 19:30 | ||||||
|
В общем если нулевой элемент был больше 9, то флаг увеличивался, а так как цикл больше не выполнялся, то флаг оставался равным одному и после цикла.
Например, 9+1, в массиве лежит 0. Но ведь должно получится 10, поэтому и прибавляем спереди еденичку. И это работает при любых числах. В VC должен быть дебаггер, посмотрите что там не так выполняется... Вообще вот область кода, которую я изменял, посмотрите, может, ошиблись где...
1
|
||||||
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
|
| 30.04.2011, 19:37 [ТС] | |
|
Блин,сейчас в новом проэкте проверил свой первый код он тоже нормально прибавляет...че за прикол??а раньше в старом проэкте не хотело работать правильно.
т.е. раньше в том коде при сложении 19 и 11 выходило 20 а сейчас в том же коде уже 30 выходит...о_О)значит я писал правильно...
0
|
|
|
Higher
|
|
| 30.04.2011, 19:38 | |
|
Из литературы могу посоветовать этот сайт
http://acmp.ru/article.asp?id_text=1329 Там же можно проверить, верно ли вы решили.
1
|
|
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
||||||
| 30.04.2011, 19:52 [ТС] | ||||||
|
Вообщем кому интересно вот решение во всей красе=)
0
|
||||||
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
|
| 02.05.2011, 22:52 [ТС] | |
|
А все-таки как работает єта твоя функция nol???дописывает нолики?Помогите разобратся если строки будут разной длины*?!
0
|
|
|
Higher
|
||||||
| 03.05.2011, 10:32 | ||||||
|
Да, дописывает меньшему числу нули в начало
1
|
||||||
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
||||||||||||||||||||||||||||||||||||
| 03.05.2011, 12:03 | ||||||||||||||||||||||||||||||||||||
|
Все гораздо проще можно сделать:
Конструкторов всего два: конструктор копирования создается автоматически, а конструктор без аргументов нам просто не нужен, так как в конструкторе инициализации задан аргумент по умолчанию. Реализацию покажем на примере конструктора с аргументом-целым (листинг 11.18).
Реализацию остальных методов оставляем читателю. Используйте для реализации дружественных функций уже реализованные операции с присваиванием, например
1
|
||||||||||||||||||||||||||||||||||||
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
||||||
| 03.05.2011, 16:14 [ТС] | ||||||
я убрал функцию,так как функции еще не учил и задание без них было...ну это неважно.. Блин я считать разучился,123 и 12 складывает неправильно он к 1(в 12) прибавляет еще 1 т.е. складывает 123 и 22...а числа больше вообще не хочет..
0
|
||||||
|
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
|
||||||
| 04.05.2011, 19:20 [ТС] | ||||||
т.е. если сложить 12 и 123 выходит 13...
0
|
||||||
|
Higher
|
||||||||||||||||
| 05.05.2011, 13:07 | ||||||||||||||||
|
Во-первых убейте этот код-_-
Во-вторых, у массива s нету конца строки. Т.е. ответ выведется правильно, но за ним последует довольно длинная последовательность мусора... Сделайте так
1
|
||||||||||||||||
| 05.05.2011, 13:07 | |
|
Деление длинных чисел столбиком Вывод символов строки столбиком Вычитание, умножение, деление столбиком Перемножение столбиком двух массивов char
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|