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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2017, 22:20   #1
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
Печаль Осталось совсем чу-чуть

Я почти зделал задачу и тут всплывает что нужно зделать задчу чтобы она сортеровала не по алфавиту а по количеству
Код:
#include <iostream>

using namespace std;

 int main()
{
    char stroka[100];
    int nomer_simvola=0;
    int masiv=0;
    int razmer_masiva=0;
    int cnt=1;
    cout <<"Введите строку с которой хотите пошитать слова                     -->";
    cin.getline(stroka,100);
    while (stroka[razmer_masiva] > 0){
        razmer_masiva++;
    }
    int kolichestvo[razmer_masiva];
    while (stroka[masiv]>0)
    {
        while (nomer_simvola<razmer_masiva-1){
            if (stroka[nomer_simvola]> stroka[nomer_simvola+1]){
                char nedolgo = stroka[nomer_simvola+1];
                stroka[nomer_simvola+1]=stroka[nomer_simvola];
                stroka[nomer_simvola] = nedolgo;
            }
            nomer_simvola++;
        }
        nomer_simvola=0;
        masiv++;
    }
    char symvol=stroka[0];
    nomer_simvola=1;
    if(razmer_masiva>0){


    while(nomer_simvola<razmer_masiva){
            if(symvol==stroka[nomer_simvola])
                cnt++;
            if (symvol<stroka[nomer_simvola]||symvol>stroka[nomer_simvola]){
                if (symvol != ' '){
                cout <<symvol;
                cout<<" - "<< cnt << endl;}
                cnt=1;
                symvol=stroka[nomer_simvola];
            }
            nomer_simvola++;

    }
    cout <<symvol<<" - "<< cnt << endl;
   }
   if (razmer_masiva<0){
    cout << "Пустая строка!";
   }
}
ну типо у меня
hello world
d - 1
e - 1
h - 1
l - 3
o - 2
r - 1
w - 1

a Hado
hello world
l - 3
o - 2
h - 1
e - 1
w - 1
r - 1
d - 1

Последний раз редактировалось Андрей Ш++; 23.12.2017 в 22:25.
Андрей Ш++ вне форума Ответить с цитированием
Старый 24.12.2017, 00:22   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Самое простое. Сделать еще 2 массива:символьный и числовой. Попарно внести в них инфу: Буква, количество. Отсортировать числовой по убыванию, в то же время меняя и символьный массив. Вывести попарно элементы этих массивов
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 24.12.2017, 09:51   #3
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Самое простое. Сделать еще 2 массива:символьный и числовой. Попарно внести в них инфу: Буква, количество. Отсортировать числовой по убыванию, в то же время меняя и символьный массив. Вывести попарно элементы этих массивов
Тоисть ты имеш введу что нужно заделать два массива буквенный и цыфреный и если цыфра[1] больше чем цыфра два то цыфра[1]равняетца [2] итакже буква[1]=букава[2]
Андрей Ш++ вне форума Ответить с цитированием
Старый 24.12.2017, 10:38   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

имею введу ползаваца поискам нада ушится
http://www.programmersforum.ru/showthread.php?t=122381
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 24.12.2017, 22:02   #5
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

у меня выходит какает о хурма
Код:
#include <iostream>

using namespace std;

 int main()
{
    char stroka[100];
    int nomer_simvola=0;
    int masiv=0;
    int razmer_masiva=0;
    int cnt=1;
    int b=0;
    int kolichestvo[122]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
    char bukvi[122]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    cout <<"Введите строку с которой хотите пошитать слова-->";
    cin.getline(stroka,100);
    while (stroka[razmer_masiva] > 0){
        razmer_masiva++;
    }
    while (stroka[masiv]>0)
    {
        while (nomer_simvola<razmer_masiva-1){
            if (stroka[nomer_simvola]> stroka[nomer_simvola+1]){
                char nedolgo = stroka[nomer_simvola+1];
                stroka[nomer_simvola+1]=stroka[nomer_simvola];
                stroka[nomer_simvola] = nedolgo;
            }
            nomer_simvola++;
        }
        nomer_simvola=0;
        masiv++;
    }
    char symvol=stroka[0];
    nomer_simvola=1;
    if(razmer_masiva>0){


    while(nomer_simvola<razmer_masiva){
            if(symvol==stroka[nomer_simvola])
                kolichestvo[b]++;
            if (symvol<stroka[nomer_simvola]||symvol>stroka[nomer_simvola]){
                cnt=1;
                b++;
                symvol=stroka[nomer_simvola];
                bukvi[b]=symvol;
                kolichestvo[b]=1;
            }
            nomer_simvola++;

    }
    //cout <<symvol<<" - "<< cnt << endl;
   }
   nomer_simvola=0;
   masiv=0;
   b=0;
   while(stroka[masiv]>0){
       while(nomer_simvola<razmer_masiva-1){
            if (kolichestvo[b]>kolichestvo[b+1]){
                char nedolgo1=kolichestvo[b+1];
                kolichestvo[b+1]=kolichestvo[b];
                kolichestvo[b]=nedolgo1;

                nedolgo1 = bukvi[b+1];
                bukvi[b+1]=bukvi[b];
                bukvi[b]=nedolgo1;
            }
            nomer_simvola++;
            b++;
       }
       b=0;
       nomer_simvola=0;
       masiv++;

   }
   b=0;
   while (b<razmer_masiva-1){
        if (kolichestvo!=0){
        cout <<bukvi[b]<<"-"<<kolichestvo[b]<<endl;}
        b++;
   }
   if (razmer_masiva<0){
    cout << "Пустая строка!";
   }
}
Андрей Ш++ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Может кто мне продать чуть-чуть LTC или MP за PP ? pompiduskus Свободное общение 11 22.01.2016 21:07
Совсем чуть чуть a.n.o.n.i.m Помощь студентам 0 01.10.2011 18:55
Нужно дописать программу, примерно 90% сделано, осталось чуть чуть Xerxes Фриланс 2 31.01.2011 23:27
нашел поиском нужный макрос, чуть чуть бы доработать zander Microsoft Office Excel 3 30.09.2009 12:19