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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поток cin http://www.cyberforum.ru/cpp-beginners/thread26831.html
Ребят подскажите почему после того как в цикле для потока cin устанавливается по команде Ctrl+z бит eofbit я не могу юзать поток cin он у меня все cin >> игнарирует даже если я очищаю поток cin.clear() он все равно игнарирует сины. Пример: while(cin >> client) выход через Ctrl+z { if (client.getTelephon()) {temp << client;} } if(cin.rdstate() && !cin.eof()) {cerr << "Произошла ошибка...
C++ Expected unqualified-id before '{' token #include <iostream> using namespace std; enum {researsher,laborer,secratary,manager,accountant,executive}; int main() { char a='a'; cout<<"Vvedite 6ykBy Dol>I<HOCTU(researsher,laborer,secratary,manager,accountant,executive)="; cin>>a; getchar(); switch(a) http://www.cyberforum.ru/cpp-beginners/thread26826.html
C++ Матрицы и другой примитив...
Вообщем есть 3 задачки: 1) В векторе из 10 элем. переставить их так, чтоб сначало были все отрицательные элементы, а потом все остальные, без нарушения порядка их следования. Попробывал сделать методом пузырька. Отрицательные элементы отсеиваются правильно, а вот положительные идут в неправильном порядке. int i,j; float mas,rab=0; cout<<"Vvedite 10 elementov masiva "<<endl; for...
C++ Составление программы вычисления суммы
Задание: составить программу на С++ для вычисления этой суммы (см. вложение)
C++ Программа на вычисление суммы (S) - простые циклы http://www.cyberforum.ru/cpp-beginners/thread26793.html
Каким образом составить такую вот программку? (пожалуйста напишите исходничек) Задание: (составить программу на C++) Вычислить сумму (2 вложение) До тех пор, пока (1 вложение)
C++ Builder Как в Builder-е откомпилировать и запустить программу? как в Borland C++ builder откомпилировать и запустить программу ? когда я создаю простенькую программу о выведении текста на экран, появляется серое окно form1 и все. также хочу спросить, какие горячие клавиши используются для компиляции и запуска программы? подробнее

Показать сообщение отдельно
Gravity
558 / 552 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.03.2009, 10:39     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки).
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;
}
 
Текущее время: 12:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru