Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 09.03.2009
Сообщений: 36
1

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

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

Author24 — интернет-сервис помощи студентам
Дан текст, который содержит буквы и пропуски. Найти и напечатать слово, в котором содержится больше всего символов “А”. Словом считать последовательность букв, разделенных пропусками.
помогите мне всего кода ненужно, только алгоритм нахождения.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2009, 08:11
Ответы с готовыми решениями:

Найти слово из файла, в котором встретится больше всего букв из слова, введённого с клавиатуры
Имеется файл, в нём написаны слова. С клавиатуры вводится слово с неповторяющимися буквами. Найти и...

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

Найти номер последнего по порядку столбца матрицы, в котором содержится наибольшее количество попарно различных символов
C++ Дана символьная матрица 13на18. Найти: номер последнего по порядку столбца, в котором...

найти номер курса на котором больше всего мужчин(пол указывается буквой Ч (чоловiк) или Ж (жiнка)).
Всем привет! Дан файл с "базой данных" нужно его прочитать и найти номер курса на котором больше...

5
577 / 571 / 65
Регистрация: 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;
}
1
0 / 0 / 0
Регистрация: 09.03.2009
Сообщений: 36
22.03.2009, 14:30  [ТС] 3
а попроще можно)
0
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
22.03.2009, 16:11 4
Попроще - читайте книжку и пишите сами.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
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;
}
1
0 / 0 / 0
Регистрация: 09.03.2009
Сообщений: 36
23.03.2009, 08:16  [ТС] 6
accept спасибо, но ето еще не мой уровень(
0
23.03.2009, 08:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2009, 08:16
Помогаю со студенческими работами здесь

Найти слово, в котором число различных символов минимально
Добрый вечер! Помогите, пожалуйста. Ввести n слов с консоли. Найти слово, в котором число...

Найти слово, число разных символов в котором минимально
Найти слово, число разных символов в которых минимально,если таких слов много,вывести самое первое...

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

Строки: определить номер слова, в котором содержится больше одного цифрового символа
определить номера слова, в котором содержится больше одногл цифрового символа c++,string ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru