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

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

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

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

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

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

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SZ
2 / 2 / 0
Регистрация: 16.11.2008
Сообщений: 44
21.03.2009, 00:30 #2
Может разбить большую строку на несколько по одному слову в каждой и потом работать с ними по-отдельности?
0
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;
}
0
tom
1 / 1 / 0
Регистрация: 08.11.2008
Сообщений: 62
23.03.2009, 16:19  [ТС] #4
спасибочки, но у меня прога не работает(( запускается, а потом когда вводишь строку и жмешь ввод сразу ошибка!
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
23.03.2009, 16:24 #5
У меня была такая ошибка в Visual Studio, не понимаю с чем это связано. Компилируйте в Dev-C++, там работает без проблем.
0
tom
1 / 1 / 0
Регистрация: 08.11.2008
Сообщений: 62
23.03.2009, 16:37  [ТС] #6
а это как ??
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
23.03.2009, 16:41 #7
Что как? Dev-C++
0
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;   
     }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2009, 13:13
Привет! Вот еще темы с ответами:

Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» - C++
День добрый. Имеется условие лабы. Написать программу, в которой с клавиатуры вводится до 10 символьных строк. Вывести строки, в...

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.03.2009, 13:13
Ответ Создать тему
Опции темы

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