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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
tom
1 / 1 / 0
Регистрация: 08.11.2008
Сообщений: 62
#1

Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). - C++

20.03.2009, 11:56. Просмотров 1130. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста! Строка состоит из слов, разделенных одним или несколькими пробелами.(может начинаться несколькими пробелами и заканчиваться тоже несколькими)
Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки).
Если таких слов несколько, найти первое из них.
/*Предполагается, что длина входной строки не превосходит 300 символов, она вводится с консоли.
Использовать класс string нельзя!
*/
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2009, 11:56     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки).
Посмотрите здесь:

Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки) - C++
состоит из слов, разделенных одним или несколькими пробелами. Найти слово, один и тот же символ в котором встречается максимальное число...

Найти слово, один и тот же символ в котором встречается максимальное число раз - C++
длина входной строки не превосходит 300 символов, она вводится с консоли. Вам необходимо вывести на консоль либо преобразованную строку,...

Найти слово, в котором заданный символ встречается наиболее часто - C++
Помогите с задачей. Дан текст. Найти в нём слова, в которых некоторый заданный символ встречается наибольшее число раз.

В заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз - C++
Условие задачи: в заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз.

Найти слова, в которых символ в центре слова и в оставшейся части встречается только один раз - C++
Задание: Слово имеет нечетное количество символов, и символ, находящийся в центре слова, в оставшейся части этого слова встречается...

Определить, сколько раз встречается число 5 среди элементов всей матрицы - C++
Двумерные массивы Задача: Определить, сколько раз встречается число 5 среди элементов всей матрицы.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SZ
2 / 2 / 0
Регистрация: 16.11.2008
Сообщений: 44
21.03.2009, 00:30     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). #2
Может разбить большую строку на несколько по одному слову в каждой и потом работать с ними по-отдельности?
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.03.2009, 10:39     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). #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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#define MAXLINE 300 //максимальная длина строки
#define MAXWORDS 50 //максимальное количество слов в строке
 
/* считывает строку */
int getline(char *s, int lim)
{
    int c;
    char *ps = s;
    
    for(; lim-1>0 && (c=getchar())!='\n'; lim--)
       *s++ = c;
    *s = '\0';
    return s - ps;
}
 
/* считывает слова из строки в массив указателей */
int getwords(char *s, char *wordsptr[])
{
     char buf[MAXLINE], *bufp = buf, *pw, *pwe;
     int len, ibuf, nwords;
     
     ibuf = nwords = 0;
     pw = pwe = NULL;
     for(; *s; s++) {
        if(isspace(*s))
           continue;
        if( isalpha(*s) && !isalpha(*(s-1)) )
           pw = s;
        if( isalpha(*s) && !isalpha(*(s+1)) )
           pwe = s + 1;
        if(pw && pwe) {
           len = pwe - pw;   
           if(MAXLINE - ibuf >= len + 1) {
              while(pw < pwe)
                 buf[ibuf++] = *pw++;
              buf[ibuf++] = '\0';
              wordsptr[nwords++] = bufp;
              bufp += len + 1;
           } else {
              printf("Error: too many symbols in buffer!\n");
              return -1;
           }
           pw = pwe = NULL;
        }
     }
     return nwords;
}
 
/* поиск слова, в котором один символ встречается максимум раз */
void maxsymb(char *wordsptr[], int nwords)
{
     char c, *pw;
     int i, j, nc, nc_max = 0;
     
     for(; nwords-- > 0; *wordsptr++)
        for(i = 0; (*wordsptr)[i] != '\0'; i++) {
           c = (*wordsptr)[i];
           nc = 0;
           for(j = 0; (*wordsptr)[j] != '\0'; j++)
              if(c == (*wordsptr)[j])
                 nc++;
           if(nc > nc_max) {
              nc_max = nc;
              pw = *wordsptr;
           }
        }
     printf("\nword: %s\n", pw);
}
              
     
int main()
{
    int nwords;
    char line[MAXLINE], *wordsptr[MAXWORDS];
 
    printf("Enter string: ");
    if(getline(line, MAXLINE) > 0)
       if( (nwords = getwords(line, wordsptr)) > 0)
          maxsymb(wordsptr, nwords);
 
    getch();
    return 0;
}
tom
1 / 1 / 0
Регистрация: 08.11.2008
Сообщений: 62
23.03.2009, 16:19  [ТС]     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). #4
спасибочки, но у меня прога не работает(( запускается, а потом когда вводишь строку и жмешь ввод сразу ошибка!
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
23.03.2009, 16:24     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). #5
У меня была такая ошибка в Visual Studio, не понимаю с чем это связано. Компилируйте в Dev-C++, там работает без проблем.
tom
1 / 1 / 0
Регистрация: 08.11.2008
Сообщений: 62
23.03.2009, 16:37  [ТС]     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). #6
а это как ??
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
23.03.2009, 16:41     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). #7
Что как? Dev-C++
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2009, 13:13     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки).
Еще ссылки по теме:

Определить, сколько раз встречается число 5 среди элементов всей матрицы - C++
Определить, сколько раз встречается число 5 среди элементов всей матрицы.

Определить и напечатать слово с предложения, в котором больше раз встречается заданная буква - C++
помогите пожалуйста. Задача такова: Ввести предложение. Определить и напечатать слово с этого предложения, в котором больше раз...

Сколько раз встречается максимальное число - C++
Дано натуральное число. Определить, сколько раз в нем встречается максимальная цифра(Например 12545 - 5 встречается 2 раза). Решение...

Строки: найти слово, в котором число различных символов максимально - C++
Всем привет. Помогите, пожалуйста, написать программу по этой задаче: &quot;Строка состоит из слов, разделенных одним или несколькими...


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

Или воспользуйтесь поиском по форуму:
tom
1 / 1 / 0
Регистрация: 08.11.2008
Сообщений: 62
25.03.2009, 13:13  [ТС]     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). #8
В данном коде у меня не получается обработать случай когда строка начинается с пробелов и когда заканчивается пробелами или одновременно пробелы в начале и в конце. Может кто - нибудь ппожалуйста исправит))
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
#include <iostream>   
    using namespace std;   
    
    int found(char* s){
        
       int max=0, j, t;   
       for(int i = 0; s[i]!=0; i++){ 
           for(j = i+1, t=1; s[j]!=0; j++)   
             t+=s[j]==s[i]?1:0;
             if (t > max)   
                max = t; }   
        return max;   
    } 
 
    void main(){
        setlocale(LC_ALL, ".1251");
        char * s = new char[300];
        char * maxslovo = new char[300];  
        cout<<"Введите строку символов: "<<endl;
        int max=0,t; 
    c=cin.get();  
      while (c==32||c==10){   
        cout<<"net reshenija!"<<endl;
        c=cin.get();   
    }   
    s[0]=c;   
    cin>>&s[1];   
    do{      
        if(max!=0)   
            cin>>s;   
        t=found(s);      
        if(t>max) max=t,strcpy(maxslovo,s);   
    }while(cin.peek()!=10);      
do{  cin>>s; 
         t = found(s);   
         if (t > max) 
           max = t,strcpy(maxslovo,s);   
         }
    while(cin.peek()!=10);
    cout<<"Содержит максимально один и тот же символ слово = " << maxslovo<<endl<<"в количестве = "<<max<<endl;   
     }
Yandex
Объявления
25.03.2009, 13:13     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки).
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru