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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2009, 16:46   #1
nuha17
Новичок
Джуниор
 
Регистрация: 26.02.2009
Сообщений: 1
По умолчанию Помогите решить задачу по строкам с ++

Преобразовать строку так, чтобы все цифры в ней были отсортированы по убыванию.
nuha17 вне форума Ответить с цитированием
Старый 26.02.2009, 16:50   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, где ваши наработки?
Во-вторых, мало данных.

Что должно получиться, если строка такая:
asdf123jk54 ?

asdf321jk54
или
asdfjk54321 ?
или, может, еще что-нибудь?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.02.2009, 21:36   #3
sinj
программирователь
Пользователь
 
Аватар для sinj
 
Регистрация: 15.02.2009
Сообщений: 72
По умолчанию

Совершенно ничего с рашного если будет такая строка. Каждый символ имеет свой код, отличный от кода другого символа. Если человек совсем не разбирается, то вот в таком виде должно быть понятно....



Код:
#include<iostream>

int main()
{
	using namespace std;//используем стандартное пространство имен
	char stroka[]="asdf321jk54";//здесь неважно-просто задаем
                                                 //строку, пойдет из прошлого поста)))
	int c=sizeof(stroka);//вычисляем размер строки
	for (int j=0;j<c-1;j++){//цикл повторных просмотров строки
	for (int i=0;i<c-1;i++)//цикл просмотра строки
	{if (stroka[i]<stroka[i+1]){int prom=stroka[i];stroka[i]=stroka[i+1];stroka[i+1]=prom;};//сортируем методом пузырька
	};};
	cout<<stroka<<endl;//выводим на печать строку
	system("pause");//это чтобы консоль не закрывалась сразу
	return 0;
}
smile
sinj вне форума Ответить с цитированием
Старый 26.02.2009, 21:42   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

sinj Про сортировку всей строки ничего не сказано.
Нужно отсортировать только цифры.

К слову, похожая задача на паскале: http://programmersforum.ru/showthread.php?t=40001
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.02.2009, 21:49   #5
sinj
программирователь
Пользователь
 
Аватар для sinj
 
Регистрация: 15.02.2009
Сообщений: 72
По умолчанию

Не вопрос. Коды цифр лежат в диапазоне 48('0')-57('9'). Ничего не мешает добавить условие, примерно такое (а можно макрос либо функцию):

Код:
if (stroka[i]>47)&&(stroka[i]<58)&&(stroka[i+1]>47)&&(stroka[i+1]<58) {тогда производим сравнение}
Теперь будет сортировать цифири, а буквы останутся не тронутыми
smile
sinj вне форума Ответить с цитированием
Старый 26.02.2009, 21:52   #6
sinj
программирователь
Пользователь
 
Аватар для sinj
 
Регистрация: 15.02.2009
Сообщений: 72
По умолчанию

а в паскале, насколько я помню, есть множества. Это сильно упрощает эту вот задачку....
smile
sinj вне форума Ответить с цитированием
Старый 26.02.2009, 22:06   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

sinj Перечитайте мой пост #2.

Цитата:
Теперь будет сортировать цифири, а буквы останутся не тронутыми
И где по-вашему будут находиться эти самые отсортированные цифры?
Именно этот вопрос меня и интересует, а ответить на него может только ТС.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.02.2009, 23:14   #8
sinj
программирователь
Пользователь
 
Аватар для sinj
 
Регистрация: 15.02.2009
Сообщений: 72
По умолчанию

Это не важно. Алгоритм, хоть и простой, есть. Человек разберется сам что ему нужно: или сортировать всю строку, или отсортировать цифры, не изменяя их позиции, или отсортировать строку на символы и цифры, после чего упорядочить цифры. В любом случае не вижу смысла продолжать обсуждение.
smile
sinj вне форума Ответить с цитированием
Старый 26.02.2009, 23:22   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от sinj
Это не важно.
Это важно, как минимум, для меня, т.к. я задал вопрос, а Вы решили на него ответить. И ответили неверно.
И единственное, что, как я считаю, вы сказали правильно, это то, что смысла продолжать нет.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите решить задачу sverhuVniz Паскаль, Turbo Pascal, PascalABC.NET 4 25.10.2008 22:17
Помогите решить задачу! Anuta Помощь студентам 2 26.06.2008 05:10
Помогите решить задачу Chuvak Общие вопросы C/C++ 3 07.06.2008 09:48