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

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

Войти
Регистрация
Восстановить пароль
 
lenar_lesnik
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 7
#1

C++ Повторы в цикле - C++

08.12.2013, 23:08. Просмотров 373. Ответов 3
Метки нет (Все метки)

Надо написать программу, которая находит однофамильцев и выводит группами.
Поиск однофамильцев задаю в цикле, как сделать, чтобы повторно не брал уже найденые фамилии. И как быть с женскими фамилиями.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#define N 10
using namespace std;
struct list{
    string surname;
    string name;
    string father;
    };
int main()
{
list spisok[N];
int i;
for (i=0; i<N; i++)
{
cout << "Введите ФИО(через пробел): ";
cin >> spisok[i].surname >> spisok[i].name >> spisok[i].father;
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 23:08     C++ Повторы в цикле
Посмотрите здесь:

С++ Повторы слов!!! - C++
Помогите написать программу и примерно объяснить алгоритм. А то проболел все лекции по строкам, теперь не могу разобраться, хотя программа...

посчитать повторы слов - C++
помогите, пожалуйста, написать программу: Дан текст, содержайщий n строк. Для каждого из слов указать, сколько раз оно встречается в тексте.

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

Функции, повторы,корректировка кода - C++
как убрать при вводе &quot;нет&quot;, вывод строки введите стороны квадрата.. #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;string&quot; void...

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

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

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

Scanf в цикле - C++
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; int main() { int n,i,k; double a,r;

Ошибка в цикле - C++
Задание: Написать цикл программы. от К=1 до К=10 #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main () ...

Ошибка в цикле - C++
Хочу создать массив из 10 чисел. void main() { char a,i; for (i=0; i&lt;10; i++) { printf (&quot;Enter...

Ошибка в цикле - C++
(Задание - см. вложение) Почему функция fill_array() возвращает неправильные значения? Когда ввожу 1 или 2 числа, выводит цифру 1;...

Не работает if в цикле while - C++
Определить, является ли натуральное N (вводить с клавиатуры) степенью числа 4 или нет. Результат вывести на экран и записать в файл. Вот...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
09.12.2013, 00:13     C++ Повторы в цикле #2
lenar_lesnik, вот можно так сделать, я написал через "ж" =) так что можете переделать. суть в том что мы проходим по массиву в поисках одинаковых фамилий, и если нашли совпадение, то идем назад по массиву и если не находим совпадений то выводим результат. если же находим совпадение, то ничего не выводим и идем дальше по массиву.
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
#include <iostream>
#include <string>
#define N 10
using namespace std;
struct list{
    char surname[100];
    char name[100];
    char father[100];
    };
int main()
{
    list spisok[N];
    int i;
    for (i=0; i<N; i++)
    {
        cout << "Введите ФИО(через пробел): ";
        cin >> spisok[i].surname >> spisok[i].name >> spisok[i].father;
    }
    for (i=1;i<N-1;i++)
        if ( !stricmp(spisok[i].surname,spisok[i+1].surname) ) {
            for (int j=i-1;j>=0;j--) {
                if ( !stricmp(spisok[i].surname,spisok[j].surname) )
                    break;
                else if (!j)
                    cout<<spisok[i].surname <<" "<< spisok[i].name <<" "<< spisok[i].father<<endl;
            }
        }
}
lenar_lesnik
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 7
09.12.2013, 00:25  [ТС]     C++ Повторы в цикле #3
newb_programmer, спасибо, вот теперь думаю как сделать чтоб женские фамилии тоже находил, например Иванов и Иванова, я думал просмотреть длину, и если надо удалить последний символ
VBmaster98
19 / 18 / 2
Регистрация: 30.09.2012
Сообщений: 35
09.12.2013, 02:07     C++ Повторы в цикле #4
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
#include "stdafx.h"
#include <iostream>
#include <string>
#define N 3
 
 
 
using namespace std;
 
struct list{
    string surname;
    string name;
    string father;
    };
int main()
{
list spisok[N];
int i;
int t;
for (i=0; i<N; i++)
{
cout << "Введите ФИО(через пробел): ";
cin >> spisok[i].surname >> spisok[i].name >> spisok[i].father;
}
for (i=0; i<N; i++){
    for (t=0; t<N; t++){
        if (i!=t){
            if ((bool(spisok[i].surname == spisok[t].surname))==true)
            {
                cout<<"Result = "<< spisok[t].surname<<" "
                    <<spisok[t].name<<" "
                    << spisok[t].father
                    << " \n";
            }
        }
    }
 
}
char cha[1];
cin >> cha[NULL];
return 0;
}
Не так круто конечно...но решил поделиться)
Так сказать better simpler then clever)

Добавлено через 1 час 23 минуты
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
// c.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
 
#include <iostream>
#include <string>
#define N 3
 
 
 
using namespace std;
 
 
struct list{
    string surname;
    string name;
    string father;
    string new1;
    };
 
 
int main()
{
list spisok[N];
spisok[1].new1 = "a";\\окончание фамилии
 
int i;
int t;
for (i=0; i<N; i++)
{
cout << "Enter please your name surname ,first name : ";
 
cin >> spisok[i].surname >> spisok[i].name >> spisok[i].father;
}
for (i=0; i<N; i++){
    for (t=0; t<N; t++){
        if (i!=t){
            if ((bool(spisok[i].surname == spisok[t].surname))==true)
            {
                cout<<"homonym = "<< spisok[t].surname<<" "
                    <<spisok[t].name<<" "
                    << spisok[t].father
                    << " \n";
            }
            if ((bool((spisok[i].surname + spisok[1].new1) == spisok[t].surname))==true)
            {
                cout<<"homonym = "<< spisok[t].surname<<" "
                    <<spisok[t].name<<" "
                    << spisok[t].father
                    << " \n";
            }
            if ((bool(spisok[i].surname == (spisok[t].surname + spisok[1].new1)))==true)
            {
                cout<<"homonym = "<< spisok[t].surname<<" "
                    <<spisok[t].name<<" "
                    << spisok[t].father
                    << " \n";
            }
        }
    }
}
char cha[1];
cin >> cha[NULL];
return 0;
}
Работает только с фамилиями на английском.
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
#include "stdafx.h"
 
 
#include <iostream>
#include <string>
#define N 4
 
 
 
using namespace std;
 
 
struct list{
    string surname;
    string name;
    string father;
    string new1;
    };
 
 
int main()
{
list spisok[N];
spisok[1].new1 = "a";
 
int i;
int t;
for (i=0; i<N; i++)
{
cout << "Enter please your name surname ,first name : ";
 
cin >> spisok[i].surname >> spisok[i].name >> spisok[i].father;
}
for (i=0; i<(N); i++){
    for (t=0; t<N; t++){
        if (i!=t){
            if ((((bool((spisok[i].surname + spisok[1].new1) == spisok[t].surname))==true)) || (((bool(spisok[i].surname == (spisok[t].surname + spisok[1].new1)))==true)) || ((bool(spisok[i].surname == spisok[t].surname))==true))
            {
                cout<<"homonym = "<< spisok[t].surname<<" "
                    <<spisok[t].name<<" "
                    << spisok[t].father
                    << " \n"<<"\n";
            };
        }
    }
}
char cha[1];
cin >> cha[NULL];
return 0;
}
Yandex
Объявления
09.12.2013, 02:07     C++ Повторы в цикле
Ответ Создать тему
Опции темы

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