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

Сформировать очеред содержащую весенние даты, упорядоченные только по месяцу и числу. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверка : нажал ли пользователь клавишу http://www.cyberforum.ru/cpp-beginners/thread153542.html
Извиняюсь за тупой вопрос. Нужна функция которая проверяет, нажал ли пользователь какую то клавишу или нет. Знаю только наподобие getch() cin.get() cin.peek() но это не то.. если пользователь ничего не нажимал то функции ЖДУТ нажатия, а мне нужно чтоб цикл продолжался без остановок.
C++ Поиск самой быстрой сортировки Ищу быструю реализацию быстрого алгоритма сортировки массива для среднего случая на С/С++ под Win32. Остальные параметры не имеют значения. Пока что самая быстрая реализация которую я нашел - простой quicksort из книги Седжвика. Вот прога, где реализована быстрая сортировка : #include<algorithm> #include<stdlib.h> #include<time.h> #include<iostream> #include<stack> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread153532.html
Поиск в тексте C++
Помогите пожалуйста В файле имеется текст. Найти отсутствие пробелов после точки в конце предложения, исправить ошибки и сохранить файл. Предложением считать часть текста, что кончается "." или начинается с нового рядка
bool в параметрах функции C++
можно ли использовать тип bool в параметрах функции? void draw(char ch, int width, bool vline, bool hline ); или лучше использовать что-то другое?
C++ Невозможно найти или открыть файл pdb http://www.cyberforum.ru/cpp-beginners/thread153471.html
я написал по учебнику прогу //Первая программа на C++ #include "stdafx.h" #include <iostream> int main () { std::cout << "Добро пожаловать в С++!\n"; return 0; }
C++ шаблон функции Здрасти. Как правильно написать шаблон ,например, этой функции? int **newmatrix(int row, int col){ int **matrix=new int*; for (int i=0; i<row; ++i) matrix=new int; return matrix; } я сделал так: подробнее

Показать сообщение отдельно
mary_fly
0 / 0 / 0
Регистрация: 14.04.2010
Сообщений: 8

Сформировать очеред содержащую весенние даты, упорядоченные только по месяцу и числу. - C++

14.07.2010, 09:34. Просмотров 561. Ответов 4
Метки (Все метки)

Здравствуйте. Помогите пожалуйста дорешать задачу:
Дан текстовый файл, содержащий даты в формате «день/месяц/год», причем под день месяц отводится по две позиции, а под год – четыре (например, «16/04/2001»). Сформировать очередь содержащую весенние даты, упорядоченные только по месяцу и числу.

Задача почти решена:
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <stdio.h>
#include <stdlib.h> 
#include <string.h> 
int Put(int, int, int);   
int Get(int*, int*, int*);
 
int main()
{
    int day, month, year;
    char filename[50] = "data.txt";
    char str[50];
    FILE *f;
 
    if((f = fopen(filename, "r")) == NULL)
    {
        puts("Nevozmozhno otkrit fail!");
        return 0;
    }
 
    printf("Soderhimoe faila:\n");
    while(!feof(f))
    {
        if(fgets(str,100,f) == NULL) break;
        if(str[strlen(str)-1] == '\n') str[strlen(str)-1] = 0;
        printf("%s\n", str);
 
        sscanf(str, "%d/%d/%d", &day, &month, &year);
 
        if(month > 2 && month < 6)
        {
            if(Put(day, month, year))
            {   
                //Помещение в очередь
                //и проверка результата
                puts("Nehvataet pamyati!");
                break;
            }
        }
    }
    fclose(f);
 
    printf("\nRezultat:\n");
    //Цикл пока в очереди есть значения
    while(!Get(&day, &month, &year)) 
        (day < 10 && month < 10) ? printf("0%d/0%d/%d\n", day, month, year) : (day < 10 && month > 9) ? printf("0%d/%d/%d\n", day, month, year) : printf("%d/0%d/%d\n", day, month, year);
 
    return 0;
}
 
/* ----- Описание структуры и указателей на очередь ---- */
typedef struct _Element{
    int day;
    int month;
    int year;
    struct _Element *next;
} Element;
Element *head = NULL, *tail = NULL;
 
 
/* --------- Функция помещения значения в очередь --------- */
int Put(int day, int month, int year)
{
    //Выделение памяти под новый элемент
    Element *tmp = (Element *)malloc(sizeof(Element));
    if(!tmp) return 1; //Если память не выделилась, то выход
    //Инициализация ссылки на следующий элемент в очереди 
    tmp->next = NULL;                //нулевым значением
 
    tmp->day = day; //Запись значения в новый элемент
    tmp->month = month; //Запись значения в новый элемент
    tmp->year = year; //Запись значения в новый элемент
 
    //Связывание последнего элемента в очереди с новым 
    if(tail) tail->next = tmp;           //элементом
    tail = tmp; //Установка указателя на конец очереди
    //Если это первый элемент,  то установка указателя
    if(!head) head = tmp;         //на начало очереди
    return 0;  //Успешное завершение
}
 
/* --------- Функция получения значения из очереди --------*/
int Get(int* day, int* month, int* year)
{
    if(!head) return 1;  //Если очередь пуста, то выход
 
    Element *tmp = head; //Установка локального указателя
 
    *day = tmp->day;//Запись значения в параметр
    *month = tmp->month;//Запись значения в параметр
    *year = tmp->year;//Запись значения в параметр
 
    head = head->next;   //Установка нового начала очереди
    free(tmp);
    //Если это последний элемент,  то инициализация указателя 
    if(!head) tail=NULL; //на конец очереди нулевым значением
 
    return 0;   //Успешное завершение
}
Из условия не могу понять, вот этот фрагмент Сформировать очеред содержащую весенние даты, упорядоченные только по месяцу и числу.
Насколько я знаю над очередью можно выполнять три операции: добавление элементов, удаление элемент и очищать её.
А как реализовать упорядочивание элементов очереди по месяцу и числу?

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