Форум программистов, компьютерный форум CyberForum.ru

Наиболее часто встречаемая буква в масиве - C++

Восстановить пароль Регистрация
 
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
30.05.2013, 21:50     Наиболее часто встречаемая буква в масиве #1
Подскажите алгоритм поиска наиболее часто встречаемой буквы в масиве =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.05.2013, 21:56     Наиболее часто встречаемая буква в масиве #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char Max(char *s)
{
   int count[256] = {0}, i, max = 0;
   char c = '\0';
   for(; *s; ++s)
      ++count[*s];
   for(i = 0; i < 256; i++)
      if (count[i] > max)
      {
         max = count[i];
         c = i;
      }
   return с;
}
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
30.05.2013, 21:59  [ТС]     Наиболее часто встречаемая буква в масиве #3
Оу... можно поинтересоваться, а зачем нам вот этот цикл:
C++
1
2
for(; *s; ++s)
      ++count[*s];
?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.05.2013, 22:00     Наиболее часто встречаемая буква в масиве #4
Цитата Сообщение от Apelsin199 Посмотреть сообщение
Оу... можно поинтересоваться, а зачем нам вот этот цикл:
C++
1
2
for(; *s; ++s)
      ++count[*s];
?
пробегаем все символы строки s
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
30.05.2013, 22:06  [ТС]     Наиболее часто встречаемая буква в масиве #5
Цитата Сообщение от Thinker Посмотреть сообщение
пробегаем все символы строки s
Вот если честно, я ниче не понял из этого куска... =)
Задача у меня вообще немного другая, но сейчас я решаю конкретно поиск.... Вот что есть
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>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <cstdlib>
#include <string.h>
#include <iomanip>
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
 
using namespace std;
 
int main ()
{
    char str[23];
    char st;
    //int fd;
    //if (mkfifo("Pipe1_3",S_IFIFO|0666)<0) //если не удалось создать канал
    //{ 
    //  fprintf(stdout,"\nОшибка создания канала\n");
    //  return 0;
    //}
    cout<<"Введите строку:";
    cin>>str;
    //fd = open("Pipe1_3",O_WRONLY) ; //получить дескриптор для записи
    //write(fd,&str,23);
    //close(fd); 
    return 1;
}
Я ввел строку и что делать дальше?... Накой нам такой дикий цикл типа
C++
1
2
for(; *s; ++s)
      ++count[*s];
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.05.2013, 22:09     Наиболее часто встречаемая буква в масиве #6
cin>>str;
cout<<Max(str);
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
30.05.2013, 22:11  [ТС]     Наиболее часто встречаемая буква в масиве #7
Цитата Сообщение от Thinker Посмотреть сообщение
cin>>str;
cout<<Max(str);
Вы издеваетесь? =)
Можете прокоментировать тот кусочек когда, который скинули? Только немного пдробнее =)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.05.2013, 22:13     Наиболее часто встречаемая буква в масиве #8
Цитата Сообщение от Apelsin199 Посмотреть сообщение
Вы издеваетесь? =)
вводите строку, а потом выводите значение функции Max, которая возвращает наиболее часто встречающийся символ строки, какие тут издевательства...
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
30.05.2013, 22:15  [ТС]     Наиболее часто встречаемая буква в масиве #9
Цитата Сообщение от Thinker Посмотреть сообщение
вводите строку, а потом выводите значение функции Max, которая возвращает наиболее часто встречающийся символ строки, какие тут издевательства...
Вы самый лучший на свете объесняла =))
кстати немного не работает тот кусок, который вы скинули =) Вот что я сделал:
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
#include <iostream>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <cstdlib>
#include <string.h>
#include <iomanip>
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
 
using namespace std;
 
char Max(char *s)
{
   int count[256] = {0}, i, max = 0;
   char c = '\0';
   for(; *s; ++s)
      ++count[*s];
   for(i = 0; i < 256; i++)
      if (count[i] > max)
      {
         max = count[i];
         c = i;
      }
   return с;
}
 
int main ()
{
    char str[23];
    char st;
    //int fd;
    //if (mkfifo("Pipe1_3",S_IFIFO|0666)<0) //если не удалось создать канал
    //{ 
    //  fprintf(stdout,"\nОшибка создания канала\n");
    //  return 0;
    //}
    cout<<"Введите строку:";
    cin>>str;
    cout<<Max(str);
    //fd = open("Pipe1_3",O_WRONLY) ; //получить дескриптор для записи
    //write(fd,&str,23);
    //close(fd); 
    return 1;
}
Я под Linux сижу поэтому пишу в блокноте, вот что написал терминал мне в ответ на компиляцию:

main3-2.cpp:26:4: error: stray ‘\321’ in program
main3-2.cpp:26:4: error: stray ‘\201’ in program
main3-2.cpp: In function ‘char Max(char*)’:
main3-2.cpp:26:4: error: return-statement with no value, in function returning ‘char’ [-fpermissive]
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.05.2013, 22:19     Наиболее часто встречаемая буква в масиве #10
скопируйте так, у меня работает
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
#include<iostream>
using namespace std;
 
char Max(char *s)
{
   int count[256] = {0}, i, max = 0;
   char c = '\0';
   for(; *s; ++s)
      ++count[*s];
   for(i = 0; i < 256; i++)
      if (count[i] > max)
      {
         max = count[i];
         c = i;
      }
   return c;
}
 
int main()
{
   char s[1024];
   cin >> s;
   cout << Max(s);
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2013, 22:23     Наиболее часто встречаемая буква в масиве
Еще ссылки по теме:

Получить 10 наиболее часто встречающихся слов в файле C++
Вывести 10 наиболее часто встречающихся чисел C++
Наиболее часто встречающиеся слова C++

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

Или воспользуйтесь поиском по форуму:
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
30.05.2013, 22:23  [ТС]     Наиболее часто встречаемая буква в масиве #11
Спасибо =)
Yandex
Объявления
30.05.2013, 22:23     Наиболее часто встречаемая буква в масиве
Ответ Создать тему
Опции темы

Текущее время: 20:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru