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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2011, 13:01   #1
wysotsky
Новичок
Джуниор
 
Регистрация: 24.01.2011
Сообщений: 2
По умолчанию Задача на Си по разделению пятизначного числа на отдельные цифры

Застрял на задаче из второй главы "Программирования на Си" Дейтелов, условия дословно:

"Написать программу, которая считывает число из пяти цифр, разделяет это число на отдельные цифры и выводит эти цифры на печать отделяя одну от другой тремя пробелами, т.е 12345 ----> 1 2 3 4 5 "

Как можно решить эту задачу используя средства изложенные в этой главе, т.е оператор if и тип целых чисел?

Вначале у меня была такая идея:

Код:
#include<stdio.h>
int main () {
	int whl;
	
	printf("Введите число из пяти цифр\n");
	scanf("%d", &whl);

 
        if (whl >= 10000) /* определяет значения первого числа */
	if (whl < 20000)	
	
        printf("1   ");
	 
	if (whl >= 20000)
	if (whl < 30000)	
			
	 printf("2   ");
	
	if (whl >= 30000)
	if (whl < 40000)	
			
	printf("3   ");
	
	if (whl >= 40000)
	if (whl < 50000)	
			
	printf("4   ");
	
	if (whl >= 50000)
	if (whl < 60000)	
			
	printf("5   ");
	
	if (whl >= 60000)
	if (whl < 70000)	
			
	printf("6   ");
	
	if (whl >= 70000)
	if (whl < 80000)	
			
	printf("7   ");

	if (whl >= 80000)
	if (whl < 90000)	
			
	printf("8   ");
	
	if (whl >= 90000)
	if (whl < 99999)	
			
	printf("9   ");
Но кажется это как-то очень уж коряво и скорее всего неправильно...

Последний раз редактировалось Stilet; 26.01.2011 в 08:04.
wysotsky вне форума Ответить с цитированием
Старый 24.01.2011, 13:29   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Что очень коряво и неправильно скорее всего согласен. Тут скорее нужно либо функции работы со строками, либо - побитовое считывание. Даже при таком подходе - лучше Else if использовать и логические операнды, либо case. Привыкайте к хорошему стилю программирования
danekne вне форума Ответить с цитированием
Старый 24.01.2011, 13:35   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Темы внизу и в поиске.
p51x вне форума Ответить с цитированием
Старый 24.01.2011, 14:55   #4
D@rkD@iver
Форумчанин
 
Регистрация: 28.07.2009
Сообщений: 189
По умолчанию

это надо делаь делением
while (n>0)
{
printf("%d\n", n%10);
n= n/10;
}
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com
D@rkD@iver вне форума Ответить с цитированием
Старый 24.01.2011, 22:53   #5
wysotsky
Новичок
Джуниор
 
Регистрация: 24.01.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от danekne Посмотреть сообщение
Что очень коряво и неправильно скорее всего согласен. Тут скорее нужно либо функции работы со строками, либо - побитовое считывание. Даже при таком подходе - лучше Else if использовать и логические операнды, либо case. Привыкайте к хорошему стилю программирования
ну такими тонкостями во второй главе пока и не пахнет думаю D@rkD@iver прав, сейчас в третьей главе как раз похожая на эту задачка, на считывание чисел и сказано использовать для этого взятие по модулю
wysotsky вне форума Ответить с цитированием
Старый 24.01.2011, 23:51   #6
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

не понял зачем if ы
Код:
#include <stdio.h>

int main(void){
    int a, i, j, k;    
    scanf("%d", &a);
    for(i = 1, k = a; k > 10; i*=10, k/=10);    
    for(k = a; i > 0; i /= 10) printf("%d ", k/i % 10);
    getch();
    return 0;
}

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбор целого числа на отдельные символы Crystallon Общие вопросы Delphi 4 12.09.2010 20:20
разделить цифры у числа Cpluser Общие вопросы C/C++ 8 01.10.2009 14:54
Цифры числа... Mr.Qwerty Паскаль, Turbo Pascal, PascalABC.NET 1 08.09.2009 18:44
Задача на цифры числа Siluet Паскаль, Turbo Pascal, PascalABC.NET 6 04.06.2009 11:57
удаление цифры из числа Elm0 Паскаль, Turbo Pascal, PascalABC.NET 2 15.03.2008 01:51