![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Гениальный123Робот |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 2.1.2006 Репутация: нет Всего: нет |
Напечатать столбиком пример на умножение в десятичной системе счисления двух заданных натуральных чисел K и L.
СИ |
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
printf("%3d\nx\n%3d\n-----\n%d\n", K, L, K*L);
Неужели это! -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
Гениальный123Робот |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 2.1.2006 Репутация: нет Всего: нет |
Нет конечно. Работать не с числами, а с переменными (с их разрядами) при перемножении надо. |
|||
|
||||
Rockie |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
Гениальный123Робот, как вариант - можно перегнать числа в строки, затем сравнивать длину этих строк. Функция PrintWithSpaces(char * buff,int spaces) сначала печатает заданное кол-во пробелов, а затем число.
А можно не использовать строки и написать свою функцию вычисления разрядности числа:
Это сообщение отредактировал(а) Rockie - 6.11.2006, 23:10 -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
||||||
|
|||||||
Гениальный123Робот |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 2.1.2006 Репутация: нет Всего: нет |
Спасибо, Rockie! Но хотелось бы как - то попроще. Я изучаю Си вот на первом этапе... Я еще по графику не должен знать таких функций, которые ты предлагаешь ;) Я попроще решил. Вот как. Если есть замечания / предложения, буду рад выслушать:
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 11 Всего: 360 |
Э-е-ех! Это была моя мечта в далёком бейсике - складывать столбиком...
![]() ![]() Вот, сделал на скорую руку за 15 минут. Масса возможностей оптимизации и ноль комментариев, так же, нехватает проверок ввода. Но это уже база ![]()
|
|||
|
||||
Гениальный123Робот |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 2.1.2006 Репутация: нет Всего: нет |
Так сказать, легкий путей мы не ищем? ![]() Спасибо, но тоже сложновато.. или мне кажется.. ;) |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 11 Всего: 360 |
Наоборот, старался использовать только базовые конструкты.. |
|||
|
||||
Oleg_Ci |
|
||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 25 Всего: 30 |
![]()
|
||||
|
|||||
Гениальный123Робот |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 2.1.2006 Репутация: нет Всего: нет |
Олег4, Спасибо!
|
|||
|
||||
Гениальный123Робот |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 2.1.2006 Репутация: нет Всего: нет |
А Вас я попрошу остаться! ![]() Как поставить это защиту от дурака? Если попытаюстя ввести буквы или отрицательные числа... |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 11 Всего: 360 |
Ну это уже сами. (Подсказка: кроме atoi есть ещё strtol ) Хотя для начинающего подойдёт и сравниловка каждой буквы на цифру.
|
|||
|
||||
Гениальный123Робот |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 2.1.2006 Репутация: нет Всего: нет |
А без функций никак? |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 11 Всего: 360 |
||||
|
||||
zhenium |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.10.2006 Репутация: 2 Всего: 2 |
Сейчас попробуем по-простому сообразить...
Буду давать примерами, а там ты уже как-нибудь их примастри к своей проге, если не справишься - поможем! 1) Защита от дурака, который цифры с буквами путает. Пусть имеется переменная x типа int. Если ты введёшь букву, то scanf() после выполнения возвратит значение <= 0. Значит
Одним словом, пока a <= 0, т.е. вводится символ, - будет идти цикл. Ввёл число - цикл закончился. Не пугайся функции fflush(). В своё время мне тоже требовалось нечто аналогичное, препод эту функцию до сих пор не дал ![]()
Работает наподобие очистки буфера stdin. Ждёт нажатия 'Enter'. 2) Если пользоваться примером, который привёл Олег4, т.е. ввод цифр в элементы массива ( я бы так и делал - способ классный тем, что он простой и понятный ), то тут каждая цифра не должна выходить за предел [0;9]. Значит, получает следующее.
Цикл while() действует, если ты вводишь числа вне диапазона [0;9]. Кстати, это сработает, если ты вводишь число целиком через один scanf(), а тут, ты сам подумай, одному scanf() соответствует 1 цифра, т.к. в функции прописано "%1d". Здесь это будет бесполезно! Но на будушее полезно знать... 3) Если совместить пункты 1 и 2, то получим такой цикл while()
В этом способе также могут быть варианты, т.к. ты вводишь по одной цифре и переспрашивать ввод цифры посреди числа довольно необычная затея. P.S. Удачи! Если в чём-то ошибся - поправьте, буду рад.
Это сообщение отредактировал(а) alexeis1 - 24.11.2006, 10:31 |
||||||||||
|
|||||||||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |