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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2010, 00:04   #1
_FENDER_
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 26
По умолчанию Сортировка цифр в числе.

Условие задачи такое:
Дано натуральное число.Отсортировать цифры этого числа по возрастанию и убыванию.Вид сортировки задать.

Цитата:
#include<iostream.h>
main()
{
int y,z,x,v;
cout<<"\n Vvedite chislo x=";
cin>>x;
y=x%10;
x/=10;
while (x!=0)
{
if(v==1&&x%10>=y%10||v==0&&x%10<=y% 10)
y=y*10+x%10;
else
{
z=0;
while ((v==1&&x%10<y%10||v==0&&x%10>y%10) &&y>0)
{
z=z*10+y%10;
y/=10;
}
y=y*10+x%10;
while (z!=0)
{
y=y*10+z%10;
z/=10;
}
}
x/=10;
}
x=y;
}
Кто нибудь может исправить мои ошибки или написать своим способом???
_FENDER_ вне форума Ответить с цитированием
Старый 28.12.2010, 00:46   #2
Kingdom_Reborn
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 130
По умолчанию

вот на Borland C++ for DOS:
Код:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

void sort(long int &x, int v)
{
	long int y, z;
	y = x % 10;
	x /= 10;
	while (x != 0)
	{
		if (v == 1 && x % 10 >= y % 10 || v == 0 && x % 10 <= y % 10)
			y = y * 10 + x % 10;
		else
		{
			z = 0;
			while ((v == 1 && x % 10 < y % 10 || v == 0 && x % 10 > y % 10) && y > 0)
			{
				z = z * 10 + y % 10;
				y /= 10;
			}
			y = y * 10 + x % 10;
			while (z != 0)
			{
				y = y * 10 + z % 10;
				z /= 10;
			}
		}
		x /= 10;
	}
	x = y;
}

int main()
{
	long int x;
	int v;
	clrscr();
	printf("Vvedite chislo\n");
	scanf("%ld", &x);
	printf("Vvedite variant sortirovki:\n");
	printf("0 - po nevozrastaniy\n1 - po neubivaniu\n");
	scanf("%d", &v);
	if (v != 0 && v != 1) return 0;
	sort(x, v);
	printf("\n\nResult:\n\n%ld", x);
	getch();
	return 0;
}
Kingdom_Reborn вне форума Ответить с цитированием
Старый 28.12.2010, 00:50   #3
_FENDER_
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 26
По умолчанию

забыл ещё..выводится y в конце..но всё равно программа работает неправильно
_FENDER_ вне форума Ответить с цитированием
Старый 28.12.2010, 00:54   #4
Kingdom_Reborn
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 130
По умолчанию

ну а мой вариант чем не нравится?
Kingdom_Reborn вне форума Ответить с цитированием
Старый 28.12.2010, 01:16   #5
_FENDER_
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 26
По умолчанию

нравится..просто я вначале непонял его немного..спасибо просто немоверно большое..отличное решение..работает

Последний раз редактировалось _FENDER_; 28.12.2010 в 01:23. Причина: дописать забыл кое что
_FENDER_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение цифр в числе Onekey Помощь студентам 6 23.10.2010 17:21
Перестановка цифр в числе lisenog Помощь студентам 7 22.10.2010 01:33
Количество цифр в числе Zelenyi Общие вопросы C/C++ 8 18.06.2010 03:24
Сколько одинаковых цифр в числе Banderas123 Помощь студентам 16 08.12.2009 06:31