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

Напечатать букву, которая входит в наибольшее количество слов этой последовательности - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной переменной http://www.cyberforum.ru/cpp-beginners/thread1124231.html
Здравствуйте. нужно сделать задание, Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной переменной. Кто может? Заранее Спасибо!!!! Добавлено через 46 минут up up Добавлено через 46 минут up up
C++ Не работает код, пишет что-то типа нет заголовка в другой вкладке компилятора #include <iostream> #include <climits> #include <array> using namespace std; int main() { array <char, 30> actor; actor='M'; cout << actor; } http://www.cyberforum.ru/cpp-beginners/thread1124219.html
C++ Создать новый список, записав в него все положительные числа а потом отрицательные из данного списка
Дана такая задача: Создать список из целых чисел. Создать новый список, записав в него все положительные числа а потом отрицательные из того списка. Я сделала так что она записывает только положительные, что стоит добавить и как? #include "stdafx.h" #include <iostream> #include<fstream> using namespace std; struct tqueue{ int inf; tqueue *next; };
При помощи рекурсии по данным n и k выведете на экран все строки длины n, состоящие из чисел от 1 до k в лексикографическом порядке C++
Более 100 компиляций. Я уже не знаю что делать... Help. При n = 2, k = 3 должно вывести: 11 12 13 21 22 23 31 32
C++ Число. Вывести только цифры самого младшего и самого старшего разряда http://www.cyberforum.ru/cpp-beginners/thread1124206.html
Дано n-значное целое число введеное с клавиатуры. Вывести только цифры самого младшего и самого старшего разряда.
C++ Ввести строку. Слово max длины заменить на вводимое, если таких слов несколько — заменить все Ввести строку. Слово max длины заменить на вводимое, если таких слов несколько — заменить все. подробнее

Показать сообщение отдельно
corpdelta
0 / 0 / 0
Регистрация: 09.03.2014
Сообщений: 15
26.03.2014, 20:57  [ТС]     Напечатать букву, которая входит в наибольшее количество слов этой последовательности
Ребята у меня буквально только один вопрос. Программу я написал. Но так как занимаюсь этим недавно возник вопрос. В программе я указал все 256 символов ASCII кодировки (то есть расширенную версию). Но мне надо чтобы присутствовали только 26 латинских прописных букв. (это видно условия задачки). Помогите как сделать чтобы присутсвовало только латинсике прописные.
Дана непустая последовательность из строчных латинских букв, между соседними словами - запятая, за последним словом точка. Напечатать букву, которая входит в наибольшее количество слов этой последовательности.

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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    //Переменные для вычислений
    // С1 и С2 здесь - массивы соответствующие 256 знакам ASCII таблицы
    int C1[122], C2[122];
    int i, j, l, k, m;
 
    //// Та самая не пустая последовательность
    char *S = "ffag,ddaf,asdf,qwefrty";
    char c;
 
    //// Вычислили длину последовательности
    l = strlen(S);
 
    //// Обнулили массивы C1, C2
    for (i = 0; i<256; i++) { C1[i] = 0; C2[i] = 0; }
 
    // Пробежали по всей длине последовательности
    for (i = 0; i<l; i++)
    {
        // Если символ последовательности под номером i это запятая
        if (S[i] == ',')
 
        // Приплюсовали значения из С2 в соотв. ячейки С1, а С2 обнулили
        for (j = 0; j<256; j++) { C1[j] = C1[j] + C2[j]; C2[j] = 0; }
        else
        {
            // Получили ASCII код текущей буквы
            k = S[i];
 
            // И ячейку С2 с этим кодом сделали равной 1
            C2[k] = C2[k] | 1;
        }
    }
 
    // Приплюсовали значения из С2 в соотв. ячейки С1
    for (j = 0; j<256; j++) C1[j] = C1[j] + C2[j];
 
    // m - количество раз, которое в последовательности встречается первый ASCII знак
    m = C1[0];
    i = 0;
    // Теперь идем по массиву дальше и ищем тот знак, который встречался
    // чаще. Его записываем в m, а его номер в массиве - в j.
    for (j = 1; j<256; j++)
    if (C1[j] > m)
    {
        m = C1[j];
        i = j;
    }
    c = i;
    cout <<"Наиболее часто встречается: "<< c << endl;
    system("PAUSE");
}
Добавлено через 13 минут
Там в массивах С1 и С2 должно было быть написано 256. исправить забыл(
 
Текущее время: 13:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru