0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 4
1

Нужно улучшить код

02.04.2016, 15:13. Показов 443. Ответов 5

Нужно улучшить код.
1)Отсортировать таблицу(если ввести Hello World,то буква "l" должна быть на 1 месте так как она встречается 3 раза,буква о должна быть на 2 месте так-как она встречается 2 раза и т.д)
2)Например если ввести(HeHeHe),то нужно что бы маленькая буква h и большая буква H считалась за одну(h = 6),а не (h = 3,H = 3)
3)И что бы не было того пустого пробела,а выводился только мой.

Спасибо

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
 
using namespace std;
 
 
int main()
{
    char str[100];
    int alf[26];
    int j = 0;
    int probel = 0;
 
    cout<<"Vedi"<<endl;
    cin.getline(str,100);
 
    for(int i = 0;i < str[i];i++)
    {
        if(str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')
        {
            alf[i] = 0;
            j = str[i];
 
            if(j == str[i])
            {
              alf[i]++;
            }
 
        }
 
            if(str[i] == ' ')
            {
                probel++;
            }
 
            cout<<str[i]<<" = "<<alf[i]<<endl;
 
 
        if(probel != 0)
        {
            cout<<"Probel"<<" = "<<probel<<endl;
        }
 
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2016, 15:13
Ответы с готовыми решениями:

Как улучшить код?!
Написал код к заданию: Дан целочисленный массив размера N. Если он является перестановкой, то есть...

Перегрузка функций - улучшить код
Решил сделать перегрузку функций, что то не могу сделать лучше подскажите как можно сделать лучше...

Помогите улучшить простой код
Задача: Из-за высокой цены бензина водители озабочены затратами топлива своих аытомобилей. Один...

Матрица порядка N (упростить/улучшить код)
Задание: Получить целочисленную квадратную матрицу порядка N Можно ведь проще сделать,...

5
Модератор
Эксперт С++
11480 / 9398 / 5649
Регистрация: 18.12.2011
Сообщений: 25,108
02.04.2016, 16:01 2
Задача показалась мне интересной с точки зрения применения STL:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Rus");
    cout<<"ведите строку:";
    string txt;
    getline(cin,txt);
    transform(txt.begin(),txt.end(),txt.begin(),toupper); // преобразование к верхнему регистру
    map<char,int> mp1; // создаем контейнер уникальных пар char->int
    for(unsigned int i=0;i<txt.size();i++)
        mp1[txt[i]]++; // считаем количество каждой букв
    multimap<int,char> mp2;  // создаем контейнер  пар (int,char) Отсортированных по int
    for(map<char,int>::iterator p=mp1.begin();p!=mp1.end();++p) // Проходим по первому контейнеру 
    {
        pair<int,char> pic;
        pic.second=p->first;
        pic.first=p->second;
        mp2.insert(pic);   // записываем во второй контейнер
    }
    string result;
    for(multimap<int,char>::reverse_iterator p=mp2.rbegin();p!=mp2.rend();++p) // Проходим по второму контейнеру  в обратном порядке
                if(p->second!=' ')
           result+=p->second; // переписываем символы в результирующую строку
 
    cout <<result<< endl;
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 4
02.04.2016, 16:08  [ТС] 3
А можно просто к моему коду дописать еще такие штуки, чтобы они соответствовали моему вопросу, а не писать что-то в стиле "много букв", которых я пока что не понимаю)?
0
Модератор
Эксперт С++
11480 / 9398 / 5649
Регистрация: 18.12.2011
Сообщений: 25,108
02.04.2016, 16:14 4
Melborn, Этот форум существует не только для Вас одного. Посему я публикую то, что будет интересно и для других.

Что касается Вашего кода, то его надо полностью переписывать.
Получилось вот что:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <string>
#include <algorithm> 
using namespace std;
 
int main()
{
    cout<<"Enter string:"<<endl;
    string str;
    getline(cin,str);
    transform(str.begin(),str.end(),str.begin(),toupper); // преобразование к верхнему регистру
    
    int alf[26]={0};
    char letters[26];
    for(int i=0;i<26;i++)
        letters[i]='A'+i; // записываем весь алфавит
    int probel=0;
    for(int i = 0;i<str.size();i++)
    {
        if(str[i] >= 'A' && str[i] <= 'Z')
        {
            alf[str[i]-'A']++; //считаем буквы
        }
        if(str[i] == ' ')
            probel++;
    }
    if(probel)
        cout<<"Probel"<<" = "<<probel<<endl;
    // сортировка
    for(int i=0;i<26;i++)
        for(int j=1;j<26;j++)
        {
            if(alf[j]>alf[j-1])
            {
                int t=alf[j]; // сортируем встречаемость
                alf[j]=alf[j-1];
                alf[j-1]=t;
                char c=letters[j]; // одновременно переставляем буквы алфавита
                letters[j]=letters[j-1];
                letters[j-1]=c;
            }
        }
        for(int i=0;alf[i]>0;i++)
            cout<<letters[i];
        cout<<endl;
        system("pause");
        return 0;
}
1
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 4
02.04.2016, 21:57  [ТС] 5
Вы наверно не поняли.Должно быть так
L - 3
O - 2
H - 1
E - 1
W - 1
R - 1
D - 1
0
Модератор
Эксперт С++
11480 / 9398 / 5649
Регистрация: 18.12.2011
Сообщений: 25,108
03.04.2016, 10:36 6
Ну так напечатайте в таком виде! Все уже готово для этого
C++
1
2
       for(int i=0;alf[i]>0;i++)
            cout<<letters[i]<<" - "<<alf[i]<<endl;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2016, 10:36

Покритикуйте и помогите улучшить код моей игры
Здравствуйте, недавно начал писать игру и собственно пишу потихоньку, но не в этом суть, просто я...

Как улучшить свой код и его структуру?
Изучил основы С++, сейчас активно изучаю SFML, Qt и глядя на код других людей я замечаю что мой код...

Как можно улучшить мой код? Калькулятор
Как можно улучшить мой код? Калькулятор #include &lt;iostream&gt; using namespace std; int main...

Парсер математических выражений - можно ли оптимизировать и улучшить код
Добрый день возник следующий вопрос, в программировании не сильно большой гуру пошел на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru