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

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

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

Маленькая ошибка - C++

07.12.2013, 20:43. Просмотров 243. Ответов 5
Метки нет (Все метки)

C++ (Qt)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include<iostream>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
bool myfunc(char x [], char x1 []);
bool family(char *y, char *y1);
 
struct NOTE{
 
    char surname[50];
    char phone[50];
    int day[3];
 
};
 
int main()
{
    const int n = 8;
    int i = 0;
    NOTE m[n];
    for (i = 0; i < n; i++)
    {
 
        cin >> m[i].surname;
        cin >> m[i].phone;
        cin >> m[i].day[0];
        cin >> m[i].day[1];
        cin >> m[i].day[2];
 
    }
 
    for (i = 0; i < n - 1; i++){
 
        for (int j = i + 1; j < n; j++){
 
            if (family(m[i].phone, m[j].phone)){
 
                NOTE y = m[i];
                m[i] = m[j];
                m[j] = y;
 
            }}}
 
    for (i = 0; i < n; i++){
 
        cout << m[i].surname << ' ';
        cout << m[i].phone << ' ';
        cout << m[i].day[0] << ' ' << m[i].day[1] << ' ' << m[i].day[2] << endl;
 
    }
 
    char name[50];
    cin >> name;
    bool done = false;
 
    for (i = 0; i < n; i++){
    
        if (myfunc(m[i].surname, name)){
 
            cout << m[i].surname << ' ';
            cout << m[i].phone << ' ';
            cout << m[i].day[0] << m[i].day[1] << m[i].day[2] << ' ';
 
            done = true;
 
        }}
 
    return 0;
 
}
 
bool family(char *y, char *y1){
 
    int i = 0;
    while (y[i] != '/0' && y1[i] != '/0'){
 
        if ((int) y[i] > (int) y1[i]) return true;
        else if ((int) y[i] < (int) y1[i])return false;
        i++;
 
    }
 
    return false;
 
}
 
bool myfunc(char x [], char x1 []){
 
    if (strlen(x) == strlen(x1)){
 
        int i = 0;
        while (x[i] != '\0') {
 
            if (x[i] != x1[i]) return false;
            i++;
 
        }
 
        return true;
    }
 
    else return false;
 
}
Входные данные
Sidorova 5462091 11 05 1981
Bobrova 2987432 30 12 1992
Smirnov 9927936 25 11 1990
Petrov 7884153 13 04 1978
Borisova 1233728 21 06 1985
Moskvina 4564352 03 10 1988
Aleksandrov 3011765 07 05 1980
Ivanov 3744432 01 05 1977
Ivanov

У меня получается
Borisova 1233728 21 6 1985
Bobrova 2987432 30 12 1992
Aleksandrov 3011765 7 5 1980
Ivanov 3744432 1 5 1977
Moskvina 4564352 3 10 1988
Sidorova 5462091 11 5 1981
Petrov 7884153 13 4 1978
Smirnov 9927936 25 11 1990
Ivanov 3744432 151977

Верный результат
Borisova 1233728 21 6 1985
Bobrova 2987432 30 12 1992
Aleksandrov 3011765 7 5 1980
Ivanov 3744432 1 5 1977
Moskvina 4564352 3 10 1988
Sidorova 5462091 11 5 1981
Petrov 7884153 13 4 1978
Smirnov 9927936 25 11 1990
Ivanov 3744432 1.5.1977
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 20:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Маленькая ошибка (C++):

маленькая маленькая консультация, не сложная работа - C++
почему эта прога не компилируется? #include&lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;math.h&gt; int main() { string z=&quot;1011&quot;; ...

маленькая ошибка в программе - C++
ни как не могу исправить(( даже стыдно. // 4_laba_chemes.cpp: определяет точку входа для консольного приложения. // #include...

В чем ошибка (маленькая программка)? - C++
Определить, лежит ли окружность С0 в середине окружности С1 #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include...

Маленькая конструкции с if else - C++
Доброе время суток, товарищи! У меня возник вопрос, как мне в кострукции с if else сделать так, чтобы else были все другие слова, кроме...

Маленькая задачка. - C++
Дано действительное число h. Выяснить, имеет ли уравнение ax2 + bx + c = 0 действительные корни, если ...

Маленькая буква x - C++
Недавно начал изучать С++. Встретил следующий код, не понимаю как он работает. Если кто подскажет, почему из-за буквы &quot;x&quot; выполняется...

5
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 20:56 #2
Цитата Сообщение от Jurlique Посмотреть сообщение
Ivanov 3744432 1.5.1977
И откуда там точки должны взяться?

Добавлено через 2 минуты
Цитата Сообщение от Jurlique Посмотреть сообщение
Ivanov 3744432 01 05 1977
Ivanov
Почему два раза Ivanov?
0
Jurlique
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 47
07.12.2013, 21:02  [ТС] #3
Цитата Сообщение от alsav22 Посмотреть сообщение
И откуда там точки должны взяться?

Добавлено через 2 минуты

Почему два раза Ivanov?
Вариант 14
1. Описать структуру с именем NOTE, содержащую следующие поля:
• фамилия, имя;
• номер телефона;
• день рождения (массив из трех чисел).
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона;
• вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
• если такого нет, выдать на дисплей соответствующее сообщение.

Сдаю в систему и там написано входные данные какие требуются и выходные.
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 21:17 #4
Цитата Сообщение от Jurlique Посмотреть сообщение
Сдаю в систему
Тогда вопросы адресуйте системе. У меня всё нормально выводится.
На вопрос не ответили:
Цитата Сообщение от alsav22 Посмотреть сообщение
Почему два раза Ivanov?
0
Миниатюры
Маленькая ошибка  
Jurlique
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 47
07.12.2013, 21:26  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Тогда вопросы адресуйте системе. У меня всё нормально выводится.
На вопрос не ответили:
Потому что такие входные данные написаны
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 21:36 #6
Дошло, почему два Ivanov. Второй Ivanov - это ввод для поиска данных по фамилии. Тогда понятно, что нужно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    ...
    char name[50];
    cin >> name;
    bool done = false;
 
    for (i = 0; i < n; i++){
    
        if (myfunc(m[i].surname, name)){
 
            cout << m[i].surname << ' ';
            cout << m[i].phone << ' ';
            cout << m[i].day[0] << '.' << m[i].day[1] << '.' << m[i].day[2] << ' '; // точки добавить
 
            done = true;
 
        }}
...
1
Миниатюры
Маленькая ошибка  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2013, 21:36
Привет! Вот еще темы с ответами:

Ошибочка маленькая и не понятная((( - C++
Исправите ошибку.За ране спасибо! #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace...

маленькая прожка с ошибкой - C++
компиляция проходит успешно, после запуска выдает ошибку (см вложение) прога открывает файл, посимвольно его читает. если символ есть в...

Маленькая доработка программы - C++
Требуется написать программу для вычисления интеграла методом левых, правых и средних прямоугольников. Вот есть программа как вычислить 1...

Маленькая проблемка со switch - C++
Проблема - невозможность использование перемнной типа string как управляющей в операторе switch. Цель - сделать некий аналог. рабочую...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
07.12.2013, 21:36
Ответ Создать тему
Опции темы

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