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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать функцию, которая получает массив и возвращает количество простых чисел в нем. http://www.cyberforum.ru/cpp-beginners/thread22514.html
НАРОД ПОМОГИТЕ С ЗАДАЧЕЙ,ЕСТЬ ИСХОДНИК. РЕАЛИЗОВАТЬ ФУНКЦИЮ КОТОРАЯ ПОЛУЧАЕТ МАССИВ И ВОЗВРАЩАЕТ КОЛ-ВО ПРОСТЫХ ЧИСЕЛ В НЕМ #include<iostream> using namespace std; void input (int,int); void output (int,int); int prostoe (int,int ); int main()
C++ Файловые потоки и функции Скажите пожалуйста, как передать файловый поток в функцию? http://www.cyberforum.ru/cpp-beginners/thread22476.html
C++ Множество точек определяет ломаную. Имеет ли она самопересечения?
Помогите, пожалуйста, кто-нибудь! В задачах предполагается, что во входном файле записана последовательность пар чисел, которые можно рассматривать как координаты множества точек на плоскости. Для представления геометрических объектов нужно использовать структуры. Во всех задачах в начале входного файла стоит число = количеству ПАР чисел, идущих после этого числа, т.е. размерность вектора...
указатели и строки? C++
Люди помогите понять, ни как не дается это страшное слово указатель. Так в общем немного ясно, не понятно вот что: Считается что эти два выражения идентичны, ТАК? char * st1="string1"; char st2="string2"; При этом я свободно могу вытянуть любое значения (изменить и т.д.) из st2, к примеру так st2='3'; А вот как такое же проделать с седьмым символом st1?
C++ Минимальный элемент матрицы в каждой диагонали, параллельной главной http://www.cyberforum.ru/cpp-beginners/thread22453.html
используя какой цикл, можно искать минимальный элемент матрицы в каждой диагонали, параллельной главной диагонали матрицы?
C++ Замена малых латинских букв символом "$" Как написать функцию, которая для заданного в качестве параметра массива типа char заменяет все малые латинские буквы символом «$» и возвращает количество выполненных замен? подробнее

Показать сообщение отдельно
rrrFer
Заблокирован
08.02.2009, 17:34     Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки)
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
#include <iostream>   
using namespace std;   
int f(char* s){   
    int max=0;   
    for(int i=0,j,t;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(){   
    char c;   
    char s[300],maxS[300];     
    bool fl=0;
    int max=0,t;   
    do{   
        strcpy(s,"");
        do{
            c=cin.get();
            if(c==10){
                if(!s[0]){
                    cout<<"ERROR INPUT"<<endl<<"PLEASE REPEAT:"<<endl;
                    c=0;
                    continue;
                }
            }else
                if(c!=13)
                    strncat(s,&c,1);
        }while(c!=32&&c!=10);
        t=f(s);
        if(t>max){
            max=t;
            strcpy(maxS,s);
        }
    }while(c!=10);   
    cout<<endl<<maxS<<endl<<max<<endl;   
    system("pause");   
}
работает но, это совсем нелучший вариант

Добавлено через 39 минут 53 секунды
или так:
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
#include <iostream>   
using namespace std;   
int f(char* s){   
    int max=0;   
    for(int i=0,j,t;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(){   
    char c;   
    char s[300],maxS[300];   
    int max=0,t; 
    c=cin.get();
    while(c==32||c==10){
        cout<<"error";
        c=cin.get();
    }
    s[0]=c;
    cin>>&s[1];
    do{   
        if(max!=0)
            cin>>s;
        t=f(s);   
        if(t>max) max=t,strcpy(maxS,s);
    }while(cin.peek()!=10);   
    cout<<endl<<maxS<<endl<<max<<endl;   
    system("pause");   
}
 
Текущее время: 21:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru