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

Описать структуру с именем ZNAK - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.89
vnaumenko
2 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 35
19.05.2012, 07:49     Описать структуру с именем ZNAK #1
Прошу Вас помочь в написании программы, вообще не понимаю.

Описать структуру с именем ZNAK, содержащую следующие поля:
* фамилия, имя;
* знак Зодиака;
* дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
* ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам рождения;
* вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры;
* если таких нет, выдать на дисплей соответствующее сообщение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 07:49     Описать структуру с именем ZNAK
Посмотрите здесь:

C++ Описать структуру с именем ZNAK
Описать структуру с именем Znak C++
C++ Описать структуру с именем ZNAK
C++ Описать структуру с именем ZNAK
C++ Описать структуру с именем ZNAK
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gru74ik
Модератор
 Аватар для gru74ik
3120 / 1346 / 167
Регистрация: 20.02.2013
Сообщений: 3,835
Записей в блоге: 17
10.12.2015, 21:55     Описать структуру с именем ZNAK #21
daslex, и вот с твоей сортировкой разные если месяца:
Миниатюры
Описать структуру с именем ZNAK  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
10.12.2015, 22:49     Описать структуру с именем ZNAK #22
Цитата Сообщение от gru74ik Посмотреть сообщение
как-то странно у тебя сортирует, честно говоря:
Вообще не сортирует.

исправлено.
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 "string.h"
 
const int N = 256;
 
//Описание структуры по заданию
struct Znak
{
    char
        FirstName[N],
        LastName[N],
        Zodiak[N];
    size_t DR[3];
}; //Массив структур в восемь элементов
 
        //Заполнение структуры
void init(Znak *A, int size)
{
    char S[N];
 
    for (int i = 0; i<size; i++)
    {
        std::cout << "FirstName: "; std::cin >> S;
        strcpy(A[i].FirstName, S);
        std::cout << "LastName: "; std::cin >> S;
        strcpy(A[i].LastName, S);
        std::cout << "Zodiak: "; std::cin >> S;
        strcpy(A[i].Zodiak, S);
        std::cout << "Date: " << '\n';
        for (int j = 0; j<3; j++)
            std::cin >> A[i].DR[j];
 
        std::cout << '\n';
    }
}
 
void sort_znak(Znak  *A, int size) {
    for (int i=1;i<size;i++)
    {
        for (int j=0;j<size-1;j++)
        {
                  if (A[j].DR[2] * 10000 + A[j].DR[1] * 100 + A[j].DR[0] > A[j+1].DR[2] * 10000 + A[j+1].DR[1] * 100 + A[j+1].DR[0]) std::swap(A[j],A[j+1]); //Если текущий элемент больше следующего, меняем их местами
        }
    }
}
 
//Вывод всей структуры на экран
void Show(Znak *A, int N)
{
    for (int i = 0; i<N; i++)
    {
        std::cout << A[i].FirstName << '\t';
        std::cout << A[i].LastName << '\t';
        std::cout << A[i].Zodiak << '\t';
        for (int j = 0; j<3; j++) std::cout << A[i].DR[j] << ".";
        std::cout << "\n";
    }
}
 
int main()
{
    const int N = 8;
    Znak A[N] = {
        "Oleg","Volkov","lion",{11, 8, 1982},
        "Igor","BObrov","lion",{11, 8, 1974},
        "Gleb","Vilnov","lion",{ 9, 8, 1982},
        "Vlad","Milnov","lion",{10, 8, 1956},
        "Lada","Orlova","lion",{10, 8, 1996},
        "Mira","Kotina","lion",{10, 8, 1948},
        "Olga","Botova","lion",{ 5, 8, 1988},
        "Inga","Letova","lion",{ 3, 8, 1990}
    } ;
 
    //Znak obj1[N];
   // init(obj1, N);
    Show(A, N);
    sort_znak(A, N);
    std::cout << "\n==============\n";
    Show(A, N);
    system("PAUSE");
}
Но лучше переводить дату в дни. И их сравнивать.
ITALIANO
1 / 1 / 1
Регистрация: 24.10.2014
Сообщений: 139
11.12.2015, 03:30     Описать структуру с именем ZNAK #23
daslex, ну говоря про сортировку по году я имел ввиду сортировку массива, где сначала сортируется год, от меньшего к большему, потом месяц, потом день, что бы он сортировку сразу выводил на экран. Да... Похоже я не совсем правильно разъяснил, что мне нужно... Ну, а потом там будет такая формальность, как вывод фамилии по запросу. Как-то так...
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
11.12.2015, 06:59     Описать структуру с именем ZNAK #24
ITALIANO, Насчет сортировки. Миллион ифов это глупо. Там где надо сортировать даты это не только глупо, но и достаточно тяжело. Намного проще сделать общую единицу измерения, ее сравнивать и от этого отталкиваться.

А тот способ, о котором говорю я и короче и проще для понимания. В случае сортировки дат, где указаны день, месяц и год, можно слегка подогнать под себя. Принимаешь одинь день за число 1, 1 месяц за число 32, тогда любую дату можно привести к одному знаменателю, где этот знамегатель есть днеисчисление.
В одном месяце 32 дня, в одном годе 32*12 дней. Теперь любую дату можно привести в наши дни.
18.09.2005 => 18 + 9*32 + 2005*32*12
11.05.2008 => 11 + 5*32 + 2008*32*12
А уже результаты количества дней сравнивать между собой и на этой основе делать сортировку.
Для сортировки даты д.м.г такой способ намного удобнее чем возиться так как это было сделано у gru74ik, о котором ты пишешь. Его и писать проще и понять очень легко, особенно если знать хотя бы одну сорировку на обычном массиве.
Mesteriis
 Аватар для Mesteriis
371 / 154 / 40
Регистрация: 08.08.2015
Сообщений: 1,059
Завершенные тесты: 1
11.12.2015, 09:08     Описать структуру с именем ZNAK #25
daslex, советую почитать про time.h и не путать новечков, ваш велосипед по подсчету уже давно реализован более умными людьми!
gru74ik
Модератор
 Аватар для gru74ik
3120 / 1346 / 167
Регистрация: 20.02.2013
Сообщений: 3,835
Записей в блоге: 17
11.12.2015, 09:33     Описать структуру с именем ZNAK #26
Цитата Сообщение от daslex Посмотреть сообщение
В одном месяце 32 дня
хмм...
Цитата Сообщение от daslex Посмотреть сообщение
в одном годе 32*12 дней
384 дня в году???
Mesteriis
 Аватар для Mesteriis
371 / 154 / 40
Регистрация: 08.08.2015
Сообщений: 1,059
Завершенные тесты: 1
11.12.2015, 10:40     Описать структуру с именем ZNAK #27
gru74ik, да он тут преследует другой мотив, он представляет некое число, как компанентные числа,тем самым пытаясь изобрести новую систему счисления дат. А Виль те кто задает задания далеко не дурак, он либо хочет тем самым научить писать много фактурную сортировку, или как раз изучения stl библиотеки, но не как не изобретения нового "псевдо рабочего" метода!

Добавлено через 6 минут
daslex, твой подход хоть и интересен, но это как (c^2=a^2+b^2) не работает при степени отличной от 2й!
Без очень большого усложнения, которое смогли доказать только 2 или 3 года назад

Добавлено через 1 минуту
Вообще (ИМХО ) Парады уже ввести переменную типа date, и уйти от интового представления даты!
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
11.12.2015, 17:15     Описать структуру с именем ZNAK #28
Цитата Сообщение от gru74ik Посмотреть сообщение
384 дня в году???
В том летосчислении, которое нам навязано не столько дней.

Но там где не нужна разница дат, а нужно всего-лишь сравнение больше ли одна дата другой даты можно применить свое летосчисление. Сделать ровное число для минимальной единицы, сделать его без костылей и нужно чтобы операции с ним (такие как сумма, умножение) вмещались в результирующий тип данных (вроде мелочь, но переполнения нужно учитывать). Больше ничего и не надо. Может иметь место небольшой костыль для отрицательных дат, но и его сделать очень не сложно.

Цитата Сообщение от Mesteriis Посмотреть сообщение
но это как (c^2=a^2+b^2) не работает при степени отличной от 2й!
Она и при второй степени в премного подавляющем большинстве случаев не работает.

Mesteriis, Ну и каким должен быть год (какой должна быть дата) на платформе x86 при используемом типе size_t, чтобы показанный мною нубо прием дал сбой? (год считать положительным).
Mesteriis
 Аватар для Mesteriis
371 / 154 / 40
Регистрация: 08.08.2015
Сообщений: 1,059
Завершенные тесты: 1
11.12.2015, 17:32     Описать структуру с именем ZNAK #29
Цитата Сообщение от daslex Посмотреть сообщение
Она и при второй степени в премного подавляющем большинстве случаев не работает.
Прям плевок в сторону адептов евклидовом геометрии, уничтожил просто науку)

Цитата Сообщение от daslex Посмотреть сообщение
показанный мною нубо прием дал сбой?
Смотря какой сбой ты ждешь, для того что бы невозможно было трансформировать обратно, это потерять элемент даты, уже не разложишь обратно компоненту! А если ты про переполнение то да, тут все ок)) ну если конечно доживем до миллиардного года) А если про невозможность сравнения, правда лень сейчас анализ проводить, долго это, но держу пари, такие даты найдутся с вероятностью в 99%
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
11.12.2015, 20:44     Описать структуру с именем ZNAK #30
Спора не будет.
Уважаемые модераторы, большая просьба удалить поток бессвязного бреда.
Три причины.
1. Отсутствие ответов на столь простые вопросы, где справится даже ученик средней школы начальных классов.
2. Тема ушла в сторону. Сейчас идет одно слюноплюйство. Слюнями брызжют в мой адрес. Может кому и приятно, мне однозначно - нет.
3. Мало кого из моих собеседников интересует человек задавший вопрос. И мало кого собственное образование. Нас только 2,5 человека. По необходимости мы сможем поговорить и между собой. По необходимости я отвечу спросившему сюда в тему.

Распинаться и что-то доказывать кому-либо, в случае его личной небрежности в формулировках формул и терминах математики, я абсолютно не намерен.
Mr.X
Эксперт С++
 Аватар для Mr.X
2802 / 1578 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
11.12.2015, 22:14     Описать структуру с именем ZNAK #31
М-да... Вот ученые правильно говорят, что эмоции появляются при дефиците информации.
А std::lexicographical_compare кто будет изучать?
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
#include <algorithm>
#include <iostream>
#include <iterator>
///////////////////////////////////////////////////////////////////////////////
struct  T_date
{
    //-------------------------------------------------------------------------
    int     birth_date_[3];
    //-------------------------------------------------------------------------
    T_date()
    {
        birth_date_[0]  =   2000    + rand()    %   10;
        birth_date_[1]  =   2       + rand()    %   10;
        birth_date_[2]  =   20      + rand()    %   10;
    }
    //-------------------------------------------------------------------------
    bool    operator<   ( T_date    const   &   date )                  const
    {
        return  std::lexicographical_compare
                    (
                        std::begin  ( birth_date_       ),
                        std::end    ( birth_date_       ),
                        std::begin  ( date.birth_date_  ),
                        std::end    ( date.birth_date_  )
                    );
    }
    //-------------------------------------------------------------------------
    friend  std::ostream    &   operator<<
        (
            std::ostream            &   ostr,
            T_date          const   &   date
        )
    {
        std::copy
            (
                std::begin                      ( date.birth_date_  ),    
                std::end                        ( date.birth_date_  ),    
                std::ostream_iterator< int >    ( ostr, "."         )
            );
 
        return  ostr;
    }
    //-------------------------------------------------------------------------
};
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    std::locale::global(std::locale(""));
    T_date  dates[8];
 
    std::cout   <<  "До сортировки"
                <<  std::endl;
    std::copy
        (
            std::begin                          ( dates ),
            std::end                            ( dates ),
            std::ostream_iterator< T_date >     ( std::cout,    "\n" )
        );
 
    std::sort
        (
            std::begin  ( dates ),
            std::end    ( dates )
        );
 
    std::cout   <<  "\nПосле сортировки"
                <<  std::endl;
 
    std::copy
        (
            std::begin                          ( dates ),
            std::end                            ( dates ),
            std::ostream_iterator< T_date >     ( std::cout,    "\n" )
        );
 
    system("pause");
}
daslex
11.12.2015, 22:55
  #32

Не по теме:

Цитата Сообщение от Mr.X Посмотреть сообщение
М-да...
Вы непонятно кому пишете.
Если мне. То посмотрите на год создания этой темы, когда я показывал пример и кому я его показывал.
Если не мне, то неужели Вы верите в то, что третье лицо, героически воскресившее эту тему, не умеющее работать с наипростейшим видом сортировки сумеет понять Ваш код?
Я писал исключительно для него (для юного археолога) и для таких как он, на их языке, невероятно понятным для них способом.

Это сообщение не требует ответа. Это риторическое сообщение.

ITALIANO
1 / 1 / 1
Регистрация: 24.10.2014
Сообщений: 139
14.12.2015, 03:21     Описать структуру с именем ZNAK #33
Ответов хоть и много, но я не особо их понял... Мне нужно просто сделать сортировку по дате, хотя-бы с помощью пузырька...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template< class T >
void bubbleSort(T* arr, int size)
{
    T tmp;
 
    for(int i = 0; i < size - 1; ++i) // i - номер прохода
    {            
        for(int j = 0; j < size - 1; ++j) // внутренний цикл прохода
        {     
            if (arr[j + 1] < arr[j]) 
            {
                tmp = arr[j + 1]; 
                arr[j + 1] = arr[j]; 
                arr[j] = tmp;
            }
        }
    }
}
А потом сделать так, что бы можно было бы из списка введённых людей, вывести (с клавиатуры) на экран фамилию того человека которого ты записал, или соответствующую ошибку...

Добавлено через 45 минут
Я что-то начал делать по примеру сортировки, но как-то не очень...
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
#include <iostream>
#include "string.h"
#include <stdlib.h>
using namespace std; 
const int N=256;
 
struct Znak
{
char
FirstName[N],
LastName[N],
Zodiak[N];
int DR[3];
}  A[8];  
 
void init(Znak *A,int size)
{
char S[N];
for (int i=0;i<size;i++)
{
cout<<"Введите имя: "; cin>>S;
strcpy(A[i].FirstName,S);
cout<<"Введите фамилию: "; cin>>S;
strcpy(A[i].LastName,S);
cout<<"Введите знак Зодиака: "; cin>>S;
strcpy(A[i].Zodiak,S);
cout<<"Введите день рождения: "<<'\n';
for (int j=0;j<3;j++)
cin>>A[i].DR[j]; 
cout<<'\n';
}
} 
 
void Show(Znak *A,int N)
{
    int tmp;
for (int i=0;i<N;i++)
{
cout<<A[i].FirstName<<'\t';
cout<<A[i].LastName<<'\t';
cout<<A[i].Zodiak<<'\t';
for(int j = 0; j < N - 1; ++j)
{ if (A[i].DR[j + 1] < A[i].DR[j]) 
{
    tmp = A[i].DR[j + 1]; 
               A[i].DR[j + 1] = A[i].DR[j]; 
                A[i].DR[j] = tmp;
}
} 
cout<<A[i].DR[j]<<".";
cout<<"\n";
}
} 
int main()
{
const int N=2;
Znak obj1[N];
init(obj1,N);
Show(obj1,N);
system("PAUSE");
return 0;
}
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
14.12.2015, 13:11     Описать структуру с именем ZNAK #34
ITALIANO, я же для тебя показал наиболее простой способ. Описываешь дополнительную функцию, в которой переводишь дату в наиболее удобную единицу. И такие удобные единицы сравниваешь между собой.

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
#include <iostream>
#include "string.h"
 
const int N = 256;
 
//Описание структуры по заданию
struct Znak
{
    char
        FirstName[N],
        LastName[N],
        Zodiak[N];
    size_t DR[3];
}; //Массив структур в восемь элементов
 
        //Заполнение структуры
void init(Znak *A, int size)
{
    char S[N];
 
    for (int i = 0; i<size; i++)
    {
        std::cout << "FirstName: "; std::cin >> S;
        strcpy(A[i].FirstName, S);
        std::cout << "LastName: "; std::cin >> S;
        strcpy(A[i].LastName, S);
        std::cout << "Zodiak: "; std::cin >> S;
        strcpy(A[i].Zodiak, S);
        std::cout << "Date: " << '\n';
        for (int j = 0; j<3; j++)
            std::cin >> A[i].DR[j];
 
        std::cout << '\n';
    }
}
 
void sort_znak(Znak  *A, int size) {
    for (int i=1;i<size;i++)  //i - номер прохода
    {
        for (int j=i-1;j<size-1;j++) //j внутренний номер прохода.
        {
            int D1 = A[j].DR[0] +  A[j].DR[1] * 32 +  A[j].DR[2] * 32 * 12; //Переводишь дату в дни, где 1 месяц = 32 дня   и 1 год = 32 дня * 12 месяцев
            int D2 = A[j+1].DR[0] + A[j+1].DR[1]*32 + A[j+1].DR[2] * 32 * 12; //Аналогично для второго элемента, чтобы корректно сравнивать такие единицы между собой.
                  if ( D1 > D2 ) std::swap(A[j],A[j+1]); //Сравниваешь получившиеся дни, по необходимости меняешь местами (по убыванию или возрастанию зависит только от знака).
                  //DR[0] - день, DR[1] - месяц, DR[2] - год.
                  //A[j] - A - это указатель на начало массива структур, A[j] - элемент из массива
        }
    }
}
 
//Вывод всей структуры на экран
void Show(Znak *A, int N)
{
    for (int i = 0; i<N; i++)
    {
        std::cout << A[i].FirstName << '\t';
        std::cout << A[i].LastName << '\t';
        std::cout << A[i].Zodiak << '\t';
        for (int j = 0; j<3; j++) std::cout << A[i].DR[j] << ".";
        std::cout << "\n";
    }
}
 
int main()
{
   const int N=4;
  Znak obj1[N];
      init(obj1,N);
      Show(obj1,N);
      sort_znak(obj1,N);
      std::cout << "\n\n";
      Show(obj1,N);
 system("PAUSE");
}
ITALIANO
1 / 1 / 1
Регистрация: 24.10.2014
Сообщений: 139
14.12.2015, 16:08     Описать структуру с именем ZNAK #35
Спасибо всем большое!!! Благодаря вам всем я смог написать эту программу (хотя она и не так была устроена как я полагал...).
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
#include <cstdlib>
#include <math.h>
#include <string.h>
 
using namespace std;
 
struct Znak
{char LastName[30];
char FirstName[20];
char Zodiak[15];
int DR[3];
};
main ( )
{ 
    Znak s[25], tmp;
int i, j, DR, n, k, c;
n=3;
for(i=0; i<n; i++)
{
cout<<"Введите фамилию: ";
cin>>s[i].LastName;
cout <<"Введите имя: ";
cin>>s[i].FirstName;
cout <<"Введите знак Зодиака: ";
cin>>s[i].Zodiak;
cout<<"Введите день рождения:"<<endl;
cout<<"День:\n";
cin>>s[i].DR[0];
cout<<"Месяц:\n";
cin>>s[i].DR[1];
cout<<"Год:\n";
cin>>s[i].DR[2];
}
cout<<"Введите дату рождения по месяцу: ";
cin>>k;
for (i=0;i<n;i++) 
for(int j=0;j<n-1;++j)
if(strcmp(s[i].LastName,s[j].LastName)<0)
{tmp=s[i];
s[i]=s[j];
s[j]=tmp;
}
for (i=0;i<n;i++)
if (s[i].DR[1]==k)
{
cout<<endl;
c=1;
cout<<"Фамилия: "<<s[i].LastName<<endl;
cout<<"Имя: "<<s[i].FirstName<<endl;
cout<<"Знак Зодиака: "<<s[i].Zodiak<<" "<<endl;
cout<<"День рождения по месяцу: ";
cout<<"День:"<<s[i].DR[0]<<"\n";
cout<<"Месяц:"<<s[i].DR[1]<<"\n";
cout<<"Год:"<<s[i].DR[2]<<"\n";
}
if (k==0) cout<<"Такого месяца нет в списке. "<<endl;
return 0;
}
Вот пример моего кода м.б. кому и пригодится... Всем ещё раз спасибо...
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
14.12.2015, 16:51     Описать структуру с именем ZNAK #36
Цитата Сообщение от daslex Посмотреть сообщение
Но лучше переводить дату в дни. И их сравнивать.
зачем?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
union date{
    struct{
        char day;
        char month;
        short year;
    };
    int signature;
};
int main(){
    date d1, d2;
 
    d1.day=1;
    d1.month=2;
    d1.year=3;
 
    d2.day=10;
    d2.month=1;
    d2.year=3;
 
    cout<<(d1.signature<d2.signature);
  return 0;
}
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
14.12.2015, 17:21     Описать структуру с именем ZNAK #37
Kuzia domovenok, потому что это очень очевидный способ. А в случае с объединениями не все так гладко.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
union date{
    struct{
        short year;
        char month;
        char day;
    };
    int signature;
};
 
int main(){
    date d1, d2;
 
    d1.day=30;
    d1.month=11;
    d1.year=2001;
 
 
    d2.day=29;
    d2.month=12;
    d2.year=2001;
 
    std::cout<<(d1.signature < d2.signature); //30 ноября 2001 < 29 декабря 2001 ? (я думаю да)
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
14.12.2015, 17:26     Описать структуру с именем ZNAK #38
Цитата Сообщение от daslex Посмотреть сообщение
//30 ноября 2001 < 29 декабря 2001 ? (я думаю да)
не понял претензии. а она разве по-другому отвечает?
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
14.12.2015, 17:34     Описать структуру с именем ZNAK #39
Мне так-то понравился способ, (хотя и плохо понял принцип), но скрин работы программы печалит.(clang) Я ожидал единичку.
Миниатюры
Описать структуру с именем ZNAK  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2016, 17:43     Описать структуру с именем ZNAK
Еще ссылки по теме:

C++ Описать структуру с именем ZNAK

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

Или воспользуйтесь поиском по форуму:
Светлана Слонь
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 201
04.01.2016, 17:43     Описать структуру с именем ZNAK #40
а какой тут метод сортировки??
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
#include <conio.h>
#include <stdio.h> 
#include <string.h> 
#include <locale.h> 
using namespace std ;
 
 
 
int main(int a)
{    int i, j, n, b,d, flag; char isk[10]; char dan[10];
       setlocale(LC_ALL,"Russian");    
    n=8;
  struct ZNAK
  
   {//??????????? ???????????? ???? ZNAK
     char f[10];//???????
     char name[7];//???
     char znak[9];//????
     int x[3];//????, ?????, ???
     
   } array[6];
  flag=0;
  for (i=0; i<n; i++)
{
  printf("Ââåäèòå ГґГ*ìèëèþ: ");
  scanf("%s", array[i].f);
  printf("Ââåäèòå èìÿ: ");
  scanf("%s", array[i].name);
  printf("Ââåäèòå Г§Г*Г*ГЄ  Г§Г®Г¤ГЁГ*ГЄГ*: ");
  scanf("%s", array[i].znak);
  printf("Ââåäèòå Г¤Г*ГІГі ðîæäåГ*ГЁГї: ");
  
  for (j=0; j<3;j++)
  scanf("%d",&(array[i].x[j]));
  printf("\n");
}
   for (d=0; d<n-1; d++) 
        for (i=0; i<n-1-d; i++){          
            if (array[i].x[2] > array[i+1].x[2])
             {array[8]=array[i];
             array[i]=array[i+1];
             array[i+1]=array[8];}
          if (array[i].x[2] == array[i+1].x[2]){
           if (array[i].x[1] > array[i+1].x[1]){
              array[8]=array[i];
              array[i]=array[i+1];
              array[i+1]=array[8];}
           if (array[i].x[1] == array[i+1].x[1])
              if (array[i].x[0] > array[i+1].x[0]){
                  array[8]=array[i];
                  array[i]=array[i+1];
                  array[i+1]=array[5];}
 
          } }
   for (i=0; i<n; i++){
    printf("\n\nГ”Г*ìèëèÿ: %s",array[i].f);
    printf("\nÈìÿ: %s",array[i].name);
    printf("\nГ‡Г*Г*ГЄ çîäèГ*ГЄГ*: %s", array[i].znak);
     for (j=0; j<3;j++)
    printf("\nГ„Г*ГІГ* ðîæäåГ*ГЁГї: %d", array[i].x[j]);
    printf("\n");
   }
  printf("Ââåäèòå ГґГ*ìèëèþ èñêîìîãî ÷åëîâåêГ*: ");
  scanf("%s", isk);
  printf("\n\nГЌГ*éäåГ*Г*Г*Гї ГЁГ*ôîðìГ*öèÿ:");
 
  for (i=0; i<n; i++)
{if (strcmp(array[i].f,isk)==0) {
    printf("\nГ”Г*ìèëèÿ: %s",array[i].f);
    printf("\nÈìÿ: %s",array[i].name);
    printf("\nГ‡Г*Г*ГЄ çîäèГ*ГЄГ*: %s", array[i].znak);
    flag=1;
     for (j=0; j<3;j++)
    printf("\nГ„Г*ГІГ* ðîæäåГ*ГЁГї: %d", array[i].x[j]);
  }
 }
  if (flag==0) printf("Г€Г*ôîðìГ*öèÿ Г*ГҐ Г*Г*éäåГ*Г*");
     getch();
     return 0;
}
Yandex
Объявления
04.01.2016, 17:43     Описать структуру с именем ZNAK
Ответ Создать тему

Метки
znak, znak c++, описать структуру, описать структуру c++, описать структуру znak c++, описать структуру znak, описать структуру с именем znak, описать структуру с именем znak c++, структуры данных, структуры данных c++
Опции темы

Текущее время: 00:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru