Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 27
1

Найти в строке букву, которая встречается большее число раз

21.12.2015, 11:23. Показов 2160. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. У меня вот такая задача: Две строки инициализировать в программе. Составить из них третью, дважды чередуя содержимое заданных строк. Определить во вновь полученной строке букву, встречающуюся большее число раз. У меня программа выводит букву, но не ту что нужно, что нужно сделать чтобы выводило именно ту букву которую надо. Вот моя программа:

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
#include<iostream.h>
#include<string.h>
int main()
{
    char s1[]=" tatient teotle.";
    cout<<"s1= "<<s1<<endl;
    char s2[]=" toor tet.";
    cout<<"s2= "<<s2<<endl;;
    strcpy(s1," tatient teotle.");
    strcpy(s2," toor tet.");
    {strcat(s1,s2);
    cout<<s1<<s1<<endl;}
    char pos, s3[]=" tatient teotle. toor tet.";
    int i, k, kol, max; 
    for(k=0; k<strlen(s3); k++)
    {
      for(i='a'; i<'z'; i++)
       {if(s3[k]==i)
          {kol++;}
        } 
        max=0;
      for(k=0; k<strlen(s3); k++)
       if(kol>max)
      {max=kol;
       pos=i;} 
    } 
    cout<<"pos="<<pos<<endl;   
    system("pause");                                                       
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2015, 11:23
Ответы с готовыми решениями:

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

Описать функцию MinLetter(Stroka), возвращающую букву, которая встречается в строке минимальное число раз
Описать функцию MinLetter(Stroka) символьного типа, возвращающую букву, которая встречается в...

Как найти в файле букву которая встречается больше всего раз
Вот написал,что могу char c,file1,file2; FILE *t,*g; cout&lt;&lt;&quot;Введите имя входного файла:&quot;;...

Сколько раз встречается большее число
Условие: Дано натуральное число. Определить сколько раз в нем встречаться максимальная...

8
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
21.12.2015, 11:35 2
kol должен быть массивом из 26 чисел
C++
1
2
3
4
5
6
7
8
9
10
11
12
   int i, k, kol[26]=0{}, max; 
   for(k=0; k<strlen(s3); k++)
   {
      for(i='a'; i<='z'; i++)
        if(s3[k]==i)
           kol[i-'a']++;
   } 
   max='a';
   for(i='b'; i<='z'; i++)
       if(kol[i-'a']>kol[max-'a'])
         max=i;
  cout<<max;
0
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 27
21.12.2015, 11:46  [ТС] 3
zss, а почему [i-'a'] ?
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
21.12.2015, 11:49 4
Индексы массива от 0 до 25.
при i='a' i-'a'=0
при i='b' i-'a'=1
...
при i='z' i-'a'=25
1
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 27
21.12.2015, 12:27  [ТС] 5
zss, спасибо за помощь, но все равно выводит не ту букву
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
21.12.2015, 13:00 6
Цитата Сообщение от parfileva Посмотреть сообщение
выводит не ту букву
Если буква заглавная, то, естественно, она не будет учитываться.
Вот работающий код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
 
 
int main ()
{
    char s3[]="hello world!";
    int kol[26]={0};
    for(size_t k=0; k<strlen(s3); k++)
    {
        for(char i='a'; i<='z'; i++)
            if(s3[k]==i)
                kol[i-'a']++;
    } 
    char max='a';
    for(char i='b'; i<='z'; i++)
        if(kol[i-'a']>kol[max-'a'])
            max=i;
    cout<<max << endl;
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 27
21.12.2015, 13:23  [ТС] 7
zss, спасибо вам огромное!
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
21.12.2015, 14:45 8
strlen в цикле плохая идея
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
21.12.2015, 15:13 9
Цитата Сообщение от Dimension Посмотреть сообщение
плохая идея
Тот, кто понимает, что такое символьная строка, напишет самостоятельно
C++
1
for(size_t k=0; s3[k]; k++)
0
21.12.2015, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2015, 15:13
Помогаю со студенческими работами здесь

Вывести число, в котором большее число раз встречается цифра 3
Даны два натуральных числа. Вывести число, в котором большее число раз встречается цифра 3. При...

Написать программу, которая подсчитывает, сколько раз подстрока встречается в строке
как исправить чтобы не ругался? char str; cin.getline(str, 250); char str2; cin.getline(str2,...

Функция, которая считает, сколько раз в строке встречается данный элемент
Создать функцию,которая считает сколько раз в строке встречается данный элемент.

Напишите программу, которая определяет, сколько раз в строке встречается слог 'МА
Напишите программу, которая определяет, сколько раз в строке встречается слог 'МА'. Очень прошу,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru