Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2011, 19:01   #1
Nemocoder
Новичок
Джуниор
 
Регистрация: 15.08.2011
Сообщений: 2
По умолчанию (C) Разделение цифры

Добрый вечер дорогие форумчане, я начию изучать язык Си, по книге братьев Дейтлов, и там есть задания, они очень интересны и их много.Я только в 1 главе, и там почти последнее задание над которым я уже 5 дней мучаюсь не понимаю как, вообщем требуется следующее предложить пользователю ввести допустим число 94298 и пото вывести его только чтобы расстояние между цифрами были в три пробла к примеру 9 4 2 9 8 . использовать только материал главы...
Первая и последняя мысль была таковой
Код:
#include <stdio.h>
int main()
{
   int a,b,c,d,f;
   printf("Enter five numbers:");
   scanf("%d%d%d%d%d",&a,&b,&c,&d,&f);
   printf("%d   %d   %d   %d   %d",a,b,c,d,f);

   return 0;


}
Вообщем потом сразу я понял что он получается берет числами, и надо ввести 5 чисел а не цифр... Нокак взять одно число и разделить на 5 цифр.. типы данных char еще не проходил...буду рад хотябы тому чтобы натолкнули опытные программисты в правильном направление... но ничего гениального на ум не приходит...
Nemocoder вне форума Ответить с цитированием
Старый 20.08.2011, 19:10   #2
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Ну, можно считать число и в цикле узнать все его цифры. В вашем случае проще будет примерно вот так
Код:
int n;
scanf("%d", &n);
int d = 1; // d - максимальная степень 10, меньшая n
while(d*10 < n) d *= 10;
while(d > 0){
  int x = n/d; // текущая цифра
  printf("%d   ",x);
  n = n%d; // берем остаток
  d /= 10;
};
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 20.08.2011, 22:26   #3
Nemocoder
Новичок
Джуниор
 
Регистрация: 15.08.2011
Сообщений: 2
По умолчанию

Благодарю все сработало, но есть одно но, в главе первой циклы не рассматриваются требуется сделать реализацию без циклов... тут потяжелее будет
Nemocoder вне форума Ответить с цитированием
Старый 21.08.2011, 19:55   #4
Gera777
 
Регистрация: 30.07.2010
Сообщений: 4
По умолчанию

Что значит без циклов? Сделай одно и то же нужное количество раз...
Gera777 вне форума Ответить с цитированием
Старый 21.08.2011, 23:53   #5
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

без циклов:
Код:
	char a[5];
	gets(a);
	printf("%c %c %c %c %c",a[0],a[1],a[2],a[3],a[4]);
альтернативный способ:
Код:
void print(int num) {
	if (num%10==0) return;
	else {
		print(num/10);
		printf("%d ",num);
	}

}

Последний раз редактировалось onewho; 21.08.2011 в 23:55.
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разделение элементов vvsh Общие вопросы .NET 4 22.01.2011 22:49
Разделение файла. sleepex Помощь студентам 1 14.11.2010 22:40
Разделение. Maksim_27_10 Общие вопросы C/C++ 8 21.04.2010 20:40
Сортирует цифры по строкам, а надо чтобы сортировала цифры , записанные через пробелы Алексей_xXx Помощь студентам 14 06.05.2009 17:42
Разделение файла Antik163RUS Помощь студентам 9 01.07.2008 12:23