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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2017, 16:33   #1
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию [C++] Почти готовая задача

мне нужно зделать чтобЫ типо так было
aaabbbaaa
a-6
b-3
а пока я только сортеровку зделал



Код:
#include <iostream>

using namespace std;

int main()
{
    char stroka[100];
    int nomer_simvola=0;
    int masiv=0;
    int razmer_masiva=0;
    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++;
    }
    nomer_simvola=0;
    while(stroka[nomer_simvola]>0){
        cout <<stroka[nomer_simvola]<<endl;
        nomer_simvola++;
    }


}
Андрей Ш++ вне форума Ответить с цитированием
Старый 21.12.2017, 17:11   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так Вы уже самое сложное написали. дальше всё просто.

код для подсчёта (сразу после сортировки, вместо вашего nomer_simvola=0; while(stroka[nomer_simvola]>0){:
Код:
    // подсчёт
    if(razmer_masiva>0){
	int cnt=1;
	char symbol=stroka[0];
	for(int i=1;i<razmer_masiva;i++){
		if(symbol==stroka[i])
		   cnt++;
		else{	
		   cout <<symbol<<" - "<< cnt << endl;
		   cnt=1;
		   symbol=stroka[i];
		}
	}
	// выведм счётчик для последнего символа
	cout <<symbol<<" - "<< cnt << endl;
   }
   else
	cout << "Empty string!" <<endl;   

}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.12.2017, 18:04   #3
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

Можете мне обяснить ???? коль не секрет
Андрей Ш++ вне форума Ответить с цитированием
Старый 21.12.2017, 18:05   #4
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

А стоп понял....стоп.....не.....да......пр оехали

Последний раз редактировалось Андрей Ш++; 21.12.2017 в 18:08.
Андрей Ш++ вне форума Ответить с цитированием
Старый 21.12.2017, 18:08   #5
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
Смех

Короче втолкуйте мне чтоб я понял
Андрей Ш++ вне форума Ответить с цитированием
Старый 21.12.2017, 18:15   #6
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

а я баг нашол
Цитата:
hello world
- 1
d - 1
e - 1
h - 1
l - 3
o - 2
r - 1
w - 1

Process returned 0 (0x0) execution time : 5.738 s
Press ENTER to continue.
Андрей Ш++ вне форума Ответить с цитированием
Старый 21.12.2017, 18:21   #7
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

|
|
\|/
Изображения
Тип файла: png Screenshot_20171221_172049.png (34.2 Кб, 47 просмотров)

Последний раз редактировалось Андрей Ш++; 21.12.2017 в 18:35.
Андрей Ш++ вне форума Ответить с цитированием
Старый 21.12.2017, 20:42   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Андрей Ш++ Посмотреть сообщение
а я баг нашол
какой же это баг?! Программа считает ВСЕ символы в строке (запятые, точки, цифры, тире, скобки, пробелы, кавычки - короче - ВСЕ СИМВОЛЫ).
Пробел в строке есть? Его надо посчитать? Вот она его и считает.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.12.2017, 16:53   #9
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
Радость

ето баг, он должен шитать всё кроме пробелов
Андрей Ш++ вне форума Ответить с цитированием
Старый 22.12.2017, 17:05   #10
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 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 != 32){
                cout <<symvol;
                cout<<" - "<< cnt << endl;}
                cnt=1;
                symvol=stroka[nomer_simvola];
            }
            nomer_simvola++;

	}
	cout <<symvol<<" - "<< cnt << endl;
   }
   if (razmer_masiva<0){
	cout << "Пустая строка!";
   }
}
Андрей Ш++ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почти готовая прога studentX Помощь студентам 0 24.10.2012 09:59
Pascal, нужна блок схема (есть готовая задача) Nikita1100 Паскаль, Turbo Pascal, PascalABC.NET 2 20.05.2012 12:41
C# готовая задача, какой будет конечный результат? dr.Chas Помощь студентам 2 26.11.2010 08:58
нужна помощ задача почти готова 33artem Паскаль, Turbo Pascal, PascalABC.NET 1 24.05.2009 18:08
Задача на FOR, почти решена... просто проверить. Andrux Помощь студентам 5 29.12.2008 11:27