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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.05.2009, 13:25   #1
papercut
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 16
По умолчанию Задача на сортировку текста

Всем привет! Хочу попросить вас помочь решить несложную в принципе задачку на сортировку текста.


Условие:
Напечатать в алфавитном порядке все различные строчные русские буквы, входящие в заданный текст из 80 букв.


Код:
Мое решение (неверное)
Для упрощения я решил вместо текста пока что вводить 5 цифр.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include <conio.h>
#include <Windows.h>
#include <iostream.h>
#include <cstdio>
//---------------------------------------------------------------------------
#pragma argsused
main()
{
SetConsoleOutputCP(1251);
char text[5];
char alf[5] = {'1', '2', '3', '4', '5' };
char vv[5];
char x[5];
int i,j,k;
for (i=0;i<5;i++)
{
cout <<"Введите текст: ";
cin>>text[i];
}

for (i = 0; i< 5; i++)
for (j = 0; j< 5; j++)

if (text[i]!=text[j])
{
for (i=0; i<5; i++)
for (j=0; j<5; j++)
if (text[i]==alf[j])
{
for (i=0; i<5; i++)
for (j=0; j<5; j++)
if (alf[k]==text[j])
{
x[k]=text[j];
k++;
}
}
}
for (k=0; k<5;k++)
{
cout<<x[k];
}
getch();
return 0;
}

//---------------------------------------------------------------------------
Уровень у меня пока нулевой, поэтому буду рад любым советам. Сейчас читаю книгу "C++. Руководство для начинающих" Автор: Герберт Шилдт, однако она не помогла пока что найти решение к задачкам которые мне задают.
Заранее спасибо, с уважением.

Последний раз редактировалось papercut; 19.05.2009 в 13:35.
papercut вне форума
Старый 19.05.2009, 14:35   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вот так можно вывести все символы, встречающиеся в тексте.
Если нужны только русские, то просто в последнем цикле нужно идти не по всем 256-ти элементам, а только по кодам русских символов.
Код:
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;

int main()
{
char text[80];
int i;
int mas[256];
cin.getline(text,80,'\n'); // читаем текст
for(i=0; i<256; i++)
 mas[i] = 0; // пока нет никаких символов
for(i=0; i<strlen(text); i++) //идем по тексту
 mas[(int)text[i]]++; // увеличиваем элемент массива с индексом, равным коду символа
  
for(i=0; i<256; i++) // выводим символы
 if(mas[i]>0) cout<<(char)i<<endl;

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 19.05.2009, 15:46   #3
papercut
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 16
По умолчанию

Как мне расставить их в алфавитном порядке и избавится от повторений, ? Такое возможно вообще?
papercut вне форума
Старый 19.05.2009, 15:55   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

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

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 19.05.2009, 15:56   #5
papercut
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 16
По умолчанию

Ой, елки-маталки, извините, туплю
papercut вне форума
Старый 19.05.2009, 16:22   #6
papercut
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 16
По умолчанию


Уже видно что работает
Только почему то не все символы программка определила...
papercut вне форума
Старый 19.05.2009, 16:28   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Не поленился и воспроизвел. Все работает.

Я вижу, вы что-то добавили в код. Покажите исходник.
Изображения
Тип файла: jpg scr4.jpg (15.1 Кб, 124 просмотров)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 19.05.2009, 16:31   #8
papercut
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 16
По умолчанию

Очень прошу прошения за тупость, все огромное спасибо!!

А не подскажете где можно почитать про cin.getline(text,80,'\n'); и
mas[(int)text[i]]++; ? потому что я не знаю что это, знаю что оно делает, но не знаю что это такое) если спросят будет плохо(

Последний раз редактировалось papercut; 19.05.2009 в 16:34.
papercut вне форума
Старый 19.05.2009, 16:35   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Сейчас проверил в Borland C++ 3.1 - все работает. Вы наверняка как-то изменили код.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 19.05.2009, 16:37   #10
papercut
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Сейчас проверил в Borland C++ 3.1 - все работает. Вы наверняка как-то изменили код.
Очень неудобно мне, спасибо большое, я просто действительно неосторожно вставил, еще раз спасибо!
papercut вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на сортировку СРОЧНО! theFEAR Паскаль, Turbo Pascal, PascalABC.NET 0 29.04.2009 20:00
Помогите переделать файловую сортировку на сортировку динамич. списков Taisja Помощь студентам 2 15.06.2008 16:10
Задача на сортировку... Sota Помощь студентам 4 25.05.2008 19:26
Задача на сортировку массива Acid Паскаль, Turbo Pascal, PascalABC.NET 1 17.06.2007 00:16