Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 311
от 31.01.2006, 10:54

Администратор:Калашников О.А.
В рассылке:Подписчиков: 251, Экспертов: 45
В номере:Вопросов: 1, Ответов: 4


Вопрос № 34052: Доброго времени суток! Изучаю С по книге "Как программировать на С" Автор: Х. М. Дейтел, П. Дж. Дейтел. Именно на С ,а не С++ После второй главы есть задания. В этой главе рассматриваются общие понятия о программировании, наприм...

Вопрос № 34.052
Доброго времени суток! Изучаю С по книге "Как программировать на С"
Автор: Х. М. Дейтел, П. Дж. Дейтел.
Именно на С ,а не С++
После второй главы есть задания. В этой главе рассматриваются общие понятия о программировании, например вывод на печать, переход на новую строку, операции /, %, *, +, -, ==, =. А также оператор if. Не о массивах, указателях и т.д. речи не идет. Так вот столкнулся с задачей номер 2.30:
Напишите программу, которая считывает число из пяти цифр, разделяет это число на отдельные цифры и выводит эти цифры на экран, отделяя каждую тремя пробелами. Например, если пользователь ввел 42339, на экран выводится 4 2 3 3 9.
Как решить эту задачу, подскажите. Или может кто уже выполнял эти задания, и покажет свой метод решения?
Отправлен: 25.01.2006, 11:36
Вопрос задал: Grekalov (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Grekalov!
Решение задачи приведено в приложении...

Успехов!

Приложение:

Ответ отправил: Лучников Юрий Владимирович (статус: Студент)
Отправлен: 25.01.2006, 12:30

Отвечает: Zitz
Здравствуйте, Grekalov!

% - остаток от деления
(42339/1 )%10 = 9
(42339/10 )%10 = 3
(42339/100 )%10 = 3
(42339/1000 )%10 = 2
(42339/10000)%10 = 4
Логику улавливаете?? А главное никаких указателей, простая математика.
---------
Успех неизбежен
Ответ отправил: Zitz (статус: 6-ой класс)
Отправлен: 25.01.2006, 12:33

Отвечает: yatagan
Здравствуйте, Grekalov!
ну если число цифр в числе менятся не будет, то я бы сделал так:

#include <stdio.h>

int ipow(int iNumber, const int iDegree)
{
int result = iNumber;
for (int i = 1; i < iDegree; ++i)
result *= iNumber;
return result;
}

void diff(int iNumber)
{
int iSigns = 5;
int iNextSign = 0;

for (int i = iSigns - 1; i > 0; --i)
{
printf("%i ", iNextSign = iNumber / ipow(10, i));
iNumber -= iNextSign * ipow(10, i);
}
printf("%i ", iNumber);
}

ну я думаю ты разберешся, пришлось дописать ф-цию возведения целого числа в степень, так как в стандартной биб-ке есть только для вещественных. в общем работает. удачи!
---------
Україна понад усе!
Ответ отправил: yatagan (статус: 4-ый класс)
Отправлен: 25.01.2006, 13:49

Отвечает: PROD
Здравствуйте, Grekalov!
вариант решения смотрите в приложении.
удачи

Приложение:

Ответ отправил: PROD (статус: 3-ий класс)
Отправлен: 25.01.2006, 17:06


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное