|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.01.2015, 19:30 | #1 |
Пользователь
Регистрация: 20.12.2011
Сообщений: 33
|
почему программа работает не правильно
Друзья, есть программа которая считает сумму положительных членов массива. Проблема в чем. На эеран выводится правильный ответ(42), а вот в переменную p записывается почему-то 20h(а это в dec 32). В чем дело?
Код:
|
22.01.2015, 21:34 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Вы путаете. в переменную p записываются СИМВОЛЫ - там в данном случае НЕСКОЛЬКО ЦИФР (две), но длина переменной расчитана на 4-ре знака(цифры), поэтому там остаются два пробела.
20h - это ПРОБЕЛ. скриншот показать? p.s. а в конце программы надо дописать код завершения программы. например: Код:
|
22.01.2015, 21:47 | #3 | |
Пользователь
Регистрация: 20.12.2011
Сообщений: 33
|
Цитата:
|
|
22.01.2015, 22:30 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
можно так:
Код:
p.s. вообще то сумму накапливаем в регистре AL (кстати, опасно, легко за 255 перевалить! будет переполнение), но, в связи с тем, что процедура вывода выводит содержимое регистра AX, то я позволил себе переменную сумма сделать длиной слово (DW) и сохранить туда полностью регистр AX. Если Вам не нравится - то можно переделать на один байт и mov summa, al |
22.01.2015, 22:38 | #5 | |
Пользователь
Регистрация: 20.12.2011
Сообщений: 33
|
Цитата:
|
|
22.01.2015, 23:02 | #6 | ||||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
кстати, я ещё пару ненужных строчек в вашем коде проглядел: Цитата:
Цитата:
мы эту переменную используем в качестве счётчика цикла - чему равно n - столько раз и выполнится цикл проверки/сложения Цитата:
Потом делим наше число на 10, остатки от деления переводим в коды цифр (добавляем к значению числа 30h) и полученный СИМВОЛ помещаем в строку, при чём СПРАВА НАЛЕВО. получаем строчку, годную для вывода в консоль. Ну, как-то так! |
||||
22.01.2015, 23:26 | #7 | |
Пользователь
Регистрация: 20.12.2011
Сообщений: 33
|
Цитата:
Код:
|
|
23.01.2015, 00:01 | #8 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Цитата:
я бы в одном цикле замутил. p.s. А это у Вас за код?! Так же куча ошибок! Он же вообще никакой суммы не находит! |
||
23.01.2015, 00:11 | #9 | |
Пользователь
Регистрация: 20.12.2011
Сообщений: 33
|
Цитата:
|
|
23.01.2015, 00:17 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему код не правильно работает? | Максим_maks | Компоненты Delphi | 0 | 21.01.2015 08:33 |
Почему не работает код, хотя вроде всё правильно | mpdasa | Помощь студентам | 3 | 04.06.2012 10:44 |
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? | >>STINGER<< | Помощь студентам | 4 | 08.03.2011 09:56 |
Есть код но почему то не правильно работает | -ushёl- | Помощь студентам | 1 | 10.05.2010 22:27 |
программа работает. правильно ли? | getUp | Общие вопросы C/C++ | 10 | 26.03.2010 07:07 |