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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Tantal73
0 / 0 / 0
Регистрация: 08.06.2011
Сообщений: 4
#1

Найти наиболее часто встречающуюся букву и также вывести на экран в отдельной строке - C++

08.06.2011, 16:47. Просмотров 2524. Ответов 1
Метки нет (Все метки)

Помогите с прогой. :
В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов, найти и вывести на экран слова, в которых нет повторяющихся букв. Найти наиболее часто встречающуюся букву и также вывести на экран в отдельной строке.

Никак не могу составить цикл для поиска слов, в которых нет повторяющихся букв
Получилось это:

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 <fstream>
#include <iostream>
using namespace std;
 
void func(ifstream &fin)
{
    int kol=0;
    char slovo[10];
    
    while (!fin.eof())
    {
        int i,j,kol=0;
        fin>>slovo;
        for(i=0;slovo[i]!=0;i++)
            kol++;
        for(i=0;i<kol;i++)
        {
            for(j=i+1;j<kol;j++)
                if(slovo[i]==slovo[j])
                    break;
            cout<<slovo[i];
        }
        cout<<endl;
        fin.unget();
    }
    
}
int main(void)
{
    
    ifstream fin;
    fin.open("f.txt", ios::_Nocreate);
        if(fin==0)
        { cout<<"Net faila"<<endl;
            return -1;
    }
        func(fin);
        system("Pause");
        return 0;
}
Не могу понять в чём ошибка.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2011, 16:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти наиболее часто встречающуюся букву и также вывести на экран в отдельной строке (C++):

Найти в строке string наиболее часто встречающуюся пару символов и заменить на один новый символ - C++
нужно найти в строке пару символов, которые повторяются чаще всех и заменить их на один новый символ например acfghhachfjiac &quot;ac&quot; заменить...

Найти и вывести на консоль символы, наиболее часто встречающиеся в заданной строке - C++
В тексте найти и напечатать символы, встречающиеся наиболее часто. Помогите !

Определить цифру, наиболее часто встречающуюся в числе - C++
Помогите, не понимаю, что нужно сделать? Для заданного целого числа N определить цифру а, наиболее часто встречающуюся в числе....

В строке, состоящей из слов, найти и вывести на экран все слова, начинающиеся на букву w - C++
В строке , состоящей из слов , найти и вывести на экран все слова , начинающиеся на букву w .

Дан непустой массив из цифр. Вывести на экран цифру наиболее часто встречающихся в этом массиве. - C++
Доброго времени суток Помогите пжл с задачей Дан непустой массив из цифр. Вывести на экран цифру наиболее часто встречающихся в...

Найти в массиве и вывести значение наиболее часто встречающегося элемента. - C++
ПАцаны помогите, попадаю... отблагадарю... 1. Найти в массиве и вывести значение наиболее часто встре* чающегося элемента.

1
kjahert
49 / 49 / 5
Регистрация: 08.04.2011
Сообщений: 124
08.06.2011, 16:58 #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
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
const int SIZE =80;
void form (char*, char*);
 
void main()
{
        char buf[SIZE], outbuf[SIZE]={' '};
 
        while(cout<<"Vvedite stroky: ",
        cin.getline(buf, SIZE))
        {       
                form (buf, outbuf);
 
                cout<<"Rez: ";
                cout<<outbuf;
                cout<<endl<<endl;
        }
}
void form (char *a,char *out)
{       
        char *first=a, *end=a; 
        *out='\0';
        int k=0, flag=false, flag2=true;
        
 
        while (*first!='\0')
        {
                flag=true;
 
                while (*first==' '&&*first!='\0')
                        first++;
                end=first;
 
                while (*end!=' '&&*end)
                        end++;
 
                char *p=first;
                char *t=first;
//проверка на повторяющиеся буквы
                while (t!=end)
                {
                        flag2=true;
                        char *w=first;
                        while (w!=t)
                        {
                                if (*w==*t)
                                {
                                        flag2=false;
                                        break;
                                }
                                w++;
                        }
                        if (flag2==false)
                                break;
                        t++;
                }
//проверка на сортировку по алфавиту
                while (first!=(end-1)&&*first)
                {
                        if (*first>*(first+1))
                        {
                                flag=false;
                                break;
                        }
                        first++;
                }
                if (flag==true&&flag2==true) //если оба условия были выполнены
                {
                        while (p!=end) //в результирующий массив копируется слово
                                *out++=*p++;
                        *out++=' ';
                        *out='\0';
                        first++;
                }
                else first=end;
                        
        }
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2011, 16:58
Привет! Вот еще темы с ответами:

Найти в массиве и вывести значение наиболее часто встречающегося элемента - C++
Здравствуйте вы мне можете помочь? вот условие задачи, её надо сделать на С.... заранее благоларю... 1. Найти в массиве и вывести...

Определить во вновь полученной строке букву, встречающуюся большее число раз - C++
Здравствуйте, помогите пожалуйста написать программу или часть программы: Две строки инициализировать в программе. Составить из них...

Найти слова, начинающиеся и оканчивающиеся на одну и ту же букву; слова, содержащие букву, встречающуюся N раз - C++
Пусть задано множество строк. Вывести: а) слова, начинающиеся и оканчивающиеся на одну и ту же букву б) слова, которые содержат букву,...

Поиск наиболее часто встречающейся подстроки в строке - C++
Прошло уже немало лет с тех пор, как Лич Сандро ушёл на заслуженный отдых. Иногда по вечерам, когда ему становится совсем тоскливо, он...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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