Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 19:12   #1
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию Массив структур в C++

Здравствуйте. У меня возникла проблема с сортировкай. Вот что за код получился, там есть сортировка но она сортирует по фамилии а нужно по дате рождения. Помогите пожалуйста заранее спасибо.
Код:
#include "iostream"
#include "time.h"
#include "conio.h"

using namespace std;

struct ZNAK
{
    char family[15];
    char name[15];
    char znak[11];
    int date[3];
};

bool chars(char* char1, char* char2, char* char3, char* char4)
{
    int count = 0;
    int sovpad = 0;
    while (char1[count] != '\0')
    {
        if (char1[count] == char2[count])        
            ++sovpad;        
        ++count;
    }
        while (char3[count] != '\0')
    {
        if (char3[count] == char4[count])        
            ++sovpad;        
        ++count;
    }

    if (count == sovpad)
        return true;

    return false;
}

void Search(ZNAK *pZNAK, char* family, char* name, int n)
{
    bool ok = false;
    for (int i = 0; i < n; ++i)
    {        
        if (chars(pZNAK[i].family, family, pZNAK[i].name, name))
        {
            cout << "Family: " << pZNAK[i].family << endl;
            cout << "name: " << pZNAK[i].name << endl;
            cout << "ZNAK: " << pZNAK[i].znak << endl;
            cout << "Date: " << pZNAK[i].date[0] << ":" << pZNAK[i].date[1]    << ":" << pZNAK[i].date[2] << endl;
            ok = true;
        }
    }
    if (!ok)
        cout << "Family ne naydena!!!!" << endl;    
}
/* сортировка по фамилии
void Sort(ZNAK *pZNAK, int n)
{
    // A - 65
    // z - 122
    ZNAK f;
    for (int i = 0; i < n - 1; ++i)
    {
        for (int j = i; j < n; ++j)
        {
            bool h = true;
            int q = 0;    
            while (h == true && q < 16)
            {
                if (pZNAK[j].family[q] < pZNAK[i].family[q])
                {
                    h=false;
                    f = pZNAK[i];
                    pZNAK[i] = pZNAK[j];
                    pZNAK[j] = f;                
                }
                else if (pZNAK[j].family[q] > pZNAK[i].family[q])
                    h = false;            
                    
                ++q;
            }
        }
    }
}
*/
int main()
{
    int n;
    ZNAK pZNAK[10];
    cout << "Vvedite N (n <= 10): ";
    cin >> n;
    if (n > 10)
    {
        cout << "Error: N" << endl;    
        return 0;
    }
    for (int i = 0; i < n; ++i)
    {                
        cout << "Number " << i << endl;
        cout << "Vvedite Family -> ";
        cin >> pZNAK[i].family;
        cout << "Vvedite name -> ";
        cin >> pZNAK[i].name;
        cout << "Vvedite Znak -> ";
        cin >> pZNAK[i].znak;
        cout << "Vvedite date[format: den', mesyac, god] -> ";
        cin >> pZNAK[i].date[0] >> pZNAK[i].date[1] >> pZNAK[i].date[2];
    }
    char family[15];
    char name[15]; 
    cout << "Vvedite family dly poiska: ";
    cin >> family;
    cout << "<<<<<SEARCH RESULT>>>>>" << endl;
    Search(&pZNAK[0], &family[0], &name[0], n);
    Sort(&pZNAK[0], n);
    cout << "<<<<<SORT RESULT>>>>>" << endl;
    for (int i = 0; i < n; ++i)
    {
         cout << "Family: " << pZNAK[i].family << endl;
         cout << "ZNAK: " << pZNAK[i].znak << endl;
         cout << "Date: " << pZNAK[i].date[0] << ":" << pZNAK[i].date[1]    << ":" << pZNAK[i].date[2] << endl;    
         cout << "________________________________________________" << endl;
    }    
    getch();
    return 0;
}
Условие
Изображения
Тип файла: jpg Без имени-2.jpg (199.9 Кб, 66 просмотров)
803 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив структур. masashama Общие вопросы C/C++ 2 06.10.2011 05:20
Массив структур.......на С. MARTINS Фриланс 8 07.06.2011 21:11
массив структур.......на С. MARTINS Помощь студентам 0 27.05.2011 18:20
Массив структур AndreyT Общие вопросы C/C++ 2 01.06.2010 19:19
Массив структур MLV Общие вопросы C/C++ 6 08.12.2009 20:44