Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести все слова строки в порядке убывания https://www.cyberforum.ru/ cpp-beginners/ thread661804.html
Помогите пожалуйста: Дана строка текста, в которой слова разделены пробелами. Необходимо: определить количество слов в строке, вывести все слова строки в порядке убывания их длинны, вывести на...
два файла вещественных чисел C++
Даны два файла вещественных чисел, в которых данные отсортированы по неубыванию. Сформируйте выходной файл из чисел первого и второго входных файлов, чтобы его данные были отсортированы по...
C++ Верно ли, что только одна из логических переменных a и b имеет значение true
Присвоить логической переменной значение логического выражения, истинного при выполнении следующего условия и ложного в противном случае: только одна из логических переменных a и b имеет значение...
C++ Ошибка в коде #include <stdio.h> void main() { int num; scanf("%x",&num); printf("%o\n",num); printf("%x\n",num«2); -тут ошибка(красным выдает) printf("%x\n",~(num«2)); printf("%x\n",num or (~(num«2)));... https://www.cyberforum.ru/ cpp-beginners/ thread661782.html
C++ Что такое конструктор копий? https://www.cyberforum.ru/ cpp-beginners/ thread661780.html
Объясните, пожалуйста, на максимально простом языке, чем отличается конструктор от конструктора копий? Может это и одно и то же, хотя вряд ли, в книжке в разных разделах инфа выложена... под...
Функция для удаления слова из строки C++
Доброго времени суток, господа! Столкнулся с проблемой написания функции для удаления слова из строки. До этого приходилось удалять лишь лишние пробелы, делал это следующим образом...
C++ Написать обработчик для класса Vector, который будет ловить следующие ошибки:
Дано задание: Написать обработчик для класса Vector, который будет ловить следующие ошибки: 1. невозможность выделения памяти, причем выводилась информация именно в том методе, в котором не ...
C++ Двумерный массив. Найти наименьший элемент матрицы. Напечатать его индексы Найти наименьший элемент матрицы. Напечатать его индексы. Добавлено через 40 секунд помогите пожалуйста https://www.cyberforum.ru/ cpp-beginners/ thread661767.html
C++ Классы. Объекты. Методы https://www.cyberforum.ru/ cpp-beginners/ thread661763.html
Доброго времени суток! Вот задачка. Я пока начинающий в этом деле, так что не очень понятно... Создать класс "дата". Данные класса должны быть представлены тремя полями: числом, месяцем и годом...
C++ Поменять местами элементы матрицы Работа с квадратными массивами В задаче рассматривается двумерный массив с одинаковым количеством строк и столбцов; такой массив называют квадратным. Задача: В квадратном массиве из n строк,... https://www.cyberforum.ru/ cpp-beginners/ thread661759.html
2051 / 1614 / 801
Регистрация: 21.12.2010
Сообщений: 2,751
Записей в блоге: 10
02.10.2012, 14:53 0

Найти и вывести на экран самого молодого студента

02.10.2012, 14:53. Просмотров 1758. Ответов 2
Метки (Все метки)

Ответ

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
#include <iostream>
#include <fstream>
#include <ctime>
#include <stdexcept>
#include <cstring>
#include <algorithm>
#define L 31
 
struct Snp
{
    char surname[L], name[L], patronymic[L];
};
 
struct Student
{
    Student()
    {
        memset(&bdate, 0, sizeof(bdate));
    }
    tm bdate; // дата рождения представлена структрой tm из <ctime>
    Snp name;
};
 
std::ostream& operator<<(std::ostream& os, Student const& st) // вывод инфы о студенте в поток
{
    char buf[100];
    strftime(buf, sizeof(buf), "%Y %m %d", &st.bdate);
    return os << st.name.surname << ' ' << st.name.name << ' ' << st.name.patronymic << "  "<< buf;
}
 
struct TComp // сравнение двух студентов по дате рождения
{
    bool operator()(Student& s1, Student& s2)
    {
        return (difftime(mktime(&s1.bdate), mktime(&s2.bdate)) > 0);
    }
};
 
int main()
{
    std::ifstream ifs("in.txt"); // массив cтудентов заполняем из файла, образец файла см. ниже
    if(ifs.is_open())
    {
        size_t const size = 3;
        size_t i;
        Student group[size];
        for(i = 0; i < size && ifs >> group[i].name.surname >> group[i].name.name >> group[i].name.patronymic >> group[i].bdate.tm_year >> group[i].bdate.tm_mon >> group[i].bdate.tm_mday; ++i)
        ;
        if(i < size) // если не удалось считать size студентов
        {
            throw std::runtime_error("operator>> failed");
        }
        Student* pst = std::min_element(group, group + size, TComp()); // поиск младшего студента
        std::cout << *pst << std::endl;
        ifs.close();
    }
    else std::cerr << "Unable to open input file" << std::endl;
    return 0;
}
 
/* пример файла in.txt для size <= 3:
 
surname1  name1  patronymic1  92  2  24
surname2  name2  patronymic2  93  0  27
surname3  name3  patronymic3  90  0  14
 
*/


Вернуться к обсуждению:
Найти и вывести на экран самого молодого студента
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2012, 14:53
Готовые ответы и решения:

Найти и вывести на экран самого молодого студента
Дан массив записей, содержащй сведения о студентах группы: фамилия и нициалы студента, дата...

Найти и вывести на экран самого молодого студента, родившегося осенью
Приветствую всех. Я на вашем форуме новенький, поэтому поправляйте, если что не так. Мне нужна...

Найти самого молодого родившегося осенью студента
помогите исправить код данный код: найти самого молодого родившегося осенью исправить: найти...

Найти самого высокого и самого тяжелого студента в группах
Здравствуйте, Помогите, пожалуйста, с задачкой. Нужно решить через 3мерный массив. На первом...

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