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

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

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

Найти и напечатать слово, в котором содержится больше всего символов “А” - C++

21.03.2009, 08:11. Просмотров 1139. Ответов 5
Метки нет (Все метки)

Дан текст, который содержит буквы и пропуски. Найти и напечатать слово, в котором содержится больше всего символов “А”. Словом считать последовательность букв, разделенных пропусками.
помогите мне всего кода ненужно, только алгоритм нахождения.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2009, 08:11     Найти и напечатать слово, в котором содержится больше всего символов “А”
Посмотрите здесь:

C++ Предложение, в котором больше всего знаков препинания
C++ найти номер курса на котором больше всего мужчин(пол указывается буквой Ч (чоловiк) или Ж (жiнка)).
Вывести каждое второе слово в котором больше одной согласной C++
1. Скопировать из файла F1 в файл F2 строки, которые не содержат слова, начинающиеся на одну букву 2. Определить номер слова в котором больше всего г C++
Определить номер слова в котором больше всего гласных букв C++
C++ Определить и напечатать слово с предложения, в котором больше раз встречается заданная буква
Найти слово, в котором число различных символов минимально C++
C++ Подскажите как найти слово строке в котором больше 2 букв 'a', а затем вывести его?Без использования string
C++ Пользователь вводит с клавиатуры слово длинной больше 7 символов. Программа выводит 4-7 символы этого слова на
Найти, из какой школы (школ) было больше всего участников олимпиады C++
Найти слово, встречающееся чаще всего в данном текстовом файле C++
Строки: найти слово, в котором число различных символов максимально C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
558 / 552 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.03.2009, 10:54     Найти и напечатать слово, в котором содержится больше всего символов “А” #2
Мне проще показать весь код, чем обрывки функций где-то рядом была похожая тема.
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
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#define MAXLINE 1000 //максимальная длина строки
#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;
}
 
/* поиск слова, в котором символ 'A' встречается максимум раз */
void maxsymb_a(char *wordsptr[], int nwords)
{
     char c = 'A', *pw;
     int i, nc, nc_max = 0;
     
     for(; nwords-- > 0; *wordsptr++) {
        nc = 0;   
        for(i = 0; (*wordsptr)[i] != '\0'; i++)
           if(c == (*wordsptr)[i])
              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_a(wordsptr, nwords);
 
    getch();
    return 0;
}
ICECROW
0 / 0 / 0
Регистрация: 09.03.2009
Сообщений: 36
22.03.2009, 14:30  [ТС]     Найти и напечатать слово, в котором содержится больше всего символов “А” #3
а попроще можно)
Gravity
558 / 552 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
22.03.2009, 16:11     Найти и напечатать слово, в котором содержится больше всего символов “А” #4
Попроще - читайте книжку и пишите сами.
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.03.2009, 16:23     Найти и напечатать слово, в котором содержится больше всего символов “А” #5
только алгоритм нахождения
читаешь каждое слово сканфом например через scanf("%s", word); если оно прочитано, передаёшь его в фунцию CountChar типа CountChar(word, 'A'); она должна возвращать как раз количество найденных символов, поэтому её значение нужно присваивать nchars, а потом nchars сравнивать с maxnchars, если nchars больше то делать maxnchars = nchars и дальше читать

C
1
2
3
4
5
6
7
8
9
10
11
12
/* CountChar:  подсчитывает в строке s количество символов ch */
int CountChar(const char *s, int ch)
{
    int n;
    
    if (s == NULL)
        return EOF;
    for (n = 0; *s; s++)
        if (*s == ch)
            n++;
    return n;
}
ICECROW
0 / 0 / 0
Регистрация: 09.03.2009
Сообщений: 36
23.03.2009, 08:16  [ТС]     Найти и напечатать слово, в котором содержится больше всего символов “А” #6
accept спасибо, но ето еще не мой уровень(
Yandex
Объявления
23.03.2009, 08:16     Найти и напечатать слово, в котором содержится больше всего символов “А”
Ответ Создать тему
Опции темы

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