Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Используя подпрограммы для данных действительных чисел a и b вычислить min(ab, a+b) http://www.cyberforum.ru/cpp-beginners/thread2255075.html
Ради бога сделайте задачку по с++ ради христа прошу вас , а то мне не засчитают практику. 14. Используя подпрограммы, для данных действительных чисел a, b. Получить y = min(ab, a+b).
Вывести кубы натуральных чисел не превосходящих заданного C++
Сделайте ради бога мне задачку по с++ ради христа прошу вас ,а то мне не засчитают практику. 3. Составить программу вывода на экран всех кубов натуральных чисел, не превосходящих заданного N, не...
C++ Как в С++ выполнять копирование, удаление, перемещение файлов
Копирование, удаление, перемещение файлов - как это делается можете кинуть примеры ? Или проще файл .bat создавать ? Но хотелось бы в С++ это реализовать Добавлено через 1 час 37 минут Короче с...
C++ Используя один цикл, найти значение выражения: 1+А^2+А^4+А^6+... +А^2N Дано вещественное число А и целое число N(>0). Используя 1 цикл, для нахождения значения выражения 1+А^2+А^4+А^6+... +А^2N http://www.cyberforum.ru/cpp-beginners/thread2255054.html
C++ Проверка на символы в программе http://www.cyberforum.ru/cpp-beginners/thread2255052.html
Не удаётся сделать проверку в программе на символы и не отображаются русские буквы //программа сумматор //подключаем основные библиотеки #include <iostream> #include <cstdio> #include <cstdlib>...
C++ Битовые операции
Есть арифметическое выражение: y = 13 * ((2 * a + b / 8)). а, b вводятся пользователем. Как представить это же выражение посредством битовых операций. Есть такой вариант(работает неверно): y =...
C++ Односвязный список
private: link *first; - компилятор ругается на эту строку('first' was not declared in this scope). Подскажите что за проблема и как исправить. #include <iostream> #include <string> #include...
C++ Найти произведение всех положительных элементов двумерного динамического массива Составить программу нахождения произведения всех положительных элементов двумерного динамического массива размера M×N http://www.cyberforum.ru/cpp-beginners/thread2255041.html
C++ В каждой строке матрицы вычислить сумму положительных четных элементов http://www.cyberforum.ru/cpp-beginners/thread2255037.html
Помогите перевести в c++ , не работает в c++, не могу сам. #include "stdafx.h" #include <iostream> #include <conio.h> #include <math.h> #include <Windows.h> #include <iomanip> #include...
C++ Нарушение прав доступа для чтения В программе используется односвязный циклический список, все работает, но при выполнении list_print, программа выводит значения на экран и выдает ошибку. В чем проблема? 44: Вызвано исключение:... http://www.cyberforum.ru/cpp-beginners/thread2255029.html
Аракчи
12 / 5 / 5
Регистрация: 01.02.2016
Сообщений: 27
30.05.2018, 09:19 0

Массив структур: найти самого младшего и самого старшего школьника

30.05.2018, 09:19. Просмотров 951. Ответов 3
Метки (Все метки)

Лучший ответ Сообщение было отмечено MYCbKA как решение

Решение

Ваш препод, походу, знает толк в извращениях. Идею вводить столько инфы с клавы иначе и не назвать.

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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <iostream>
using namespace std;
 
struct Date
{
    int Day;
    int Month;
    int Year;
};
 
struct Address
{
    int Index;
    string Street;
    int House;
    int Flat;
};
 
struct Student
{
    string Name;
    string Surname;
    string Patronymic;
    bool Sex;
    Date DateOFBirth;
    int SchoolNumber;
    Address HomeAddress;
};
 
bool YearIsLeap(int Year)
{
    if(Year % 400 == 0)
        return(true);
    else
        if(Year % 100 == 0)
            return(false);
        else
            if(Year % 4 == 0)
                return(true);
            else
                return(false);
}
 
bool CorrectDate(Date TestingDate)
{
    if((TestingDate.Month < 13)and(TestingDate.Month > 0))
        if((TestingDate.Day < 32)and(TestingDate.Day > 0))
            if((TestingDate.Month % 2 == 0)and(TestingDate.Day == 31))
                return(false);
            else
                if((TestingDate.Month == 2)and(TestingDate.Day == 29)and(YearIsLeap(TestingDate.Year)))
                    return(false);
                else
                    return(true);
        else
            return(false);
    else
        return(false);
}
 
bool BiggerDate(Date Date1, Date Date2)
{
    if(Date1.Year > Date2.Year)
        return(true);
    else if(Date1.Month > Date2.Month)
        return(true);
    else if(Date1.Day > Date2.Day)
        return(true);
    else
        return(false);
}
 
int main()
{
    Student Students[10];
    // получение информации о студентах. хз, как предполагается её вводить.
    string SexString;
    for(int I = 0; I < 10; I++)
    {
        cout << "Student " << I + 1 << " name is:";
        cin >> Students[I].Name;
        cin >> Students[I].Surname;
        cin >> Students[I].Patronymic;
        cout << endl;
        cout << "Student " << I + 1 << " sex is:";
        cin >> SexString;
        cout << endl;
        if((SexString == "Male")or(SexString == "male")or(SexString == "M")or(SexString == "m"))
            Students[I].Sex = 1;
        else
            Students[I].Sex = 0;
        Students[I].DateOFBirth.Year = 0;
        Students[I].DateOFBirth.Month = 0;
        Students[I].DateOFBirth.Day = 0;
        while(not(CorrectDate(Students[I].DateOFBirth)))
        {
            cout << "Student " << I + 1 << " date of birth is:";
            cin >> Students[I].DateOFBirth.Day;
            cin >> Students[I].DateOFBirth.Month;
            cin >> Students[I].DateOFBirth.Year;
            cout << endl;
        }
        cout << "Student " << I + 1 << " school number is:";
        cin >> Students[I].SchoolNumber;
        cout << endl;
        cout << "Student " << I + 1 << " address is:" << endl;
        cout << "index: ";
        cin >> Students[I].HomeAddress.Index;
        cout << endl;
        cout << "street: ";
        cin >> Students[I].HomeAddress.Street;
        cout << endl;
        cout << "house: ";
        cin >> Students[I].HomeAddress.House;
        cout << endl;
        cout << "flat: ";
        cin >> Students[I].HomeAddress.Flat;
        cout << endl;
    }
    Date YoungestDate;
    YoungestDate.Year = 3000;
    YoungestDate.Month = 13;
    YoungestDate.Day = 32;
    int YoungestNumber = -1;
    Date OldestDate;
    OldestDate.Year = 0;
    OldestDate.Month = 0;
    OldestDate.Day = 0;
    int OldestNumber = -1;
    for(int StudentNumber = 0; StudentNumber < 10; StudentNumber++)
    {
        if(BiggerDate(Students[StudentNumber].DateOFBirth, OldestDate))
        {
            OldestDate = Students[StudentNumber].DateOFBirth;
            OldestNumber = StudentNumber;
        }
        if(BiggerDate(YoungestDate, Students[StudentNumber].DateOFBirth))
        {
            YoungestDate = Students[StudentNumber].DateOFBirth;
            YoungestNumber = StudentNumber;
        }
    }
    // куда надо деть информацию о самом молодом и самом старом студентах - хз
    cout << "Youngest student is №" << YoungestNumber + 1 << Students[YoungestNumber].Name << " " << Students[YoungestNumber].Surname << " " << Students[YoungestNumber].Patronymic << endl;
    if(Students[YoungestNumber].Sex)
        cout << "Sex: Male" << endl;
    else
        cout << "Sex: Female" << endl;
    cout << "Born: " << Students[YoungestNumber].DateOFBirth.Day << "." << Students[YoungestNumber].DateOFBirth.Month << "." << Students[YoungestNumber].DateOFBirth.Year << endl;
    cout << "Address: " << Students[YoungestNumber].HomeAddress.Index << " " << Students[YoungestNumber].HomeAddress.House << "," << Students[YoungestNumber].HomeAddress.Street << " Street, flat " << Students[YoungestNumber].HomeAddress.Flat << endl;
    cout << endl;
    cout << "Oldest student is №" << OldestNumber + 1 << Students[OldestNumber].Name << " " << Students[OldestNumber].Surname << " " << Students[OldestNumber].Patronymic << endl;
    if(Students[OldestNumber].Sex)
        cout << "Sex: Male" << endl;
    else
        cout << "Sex: Female" << endl;
    cout << "Born: " << Students[OldestNumber].DateOFBirth.Day << "." << Students[OldestNumber].DateOFBirth.Month << "." << Students[OldestNumber].DateOFBirth.Year << endl;
    cout << "Address: " << Students[OldestNumber].HomeAddress.Index << " " << Students[OldestNumber].HomeAddress.House << "," << Students[OldestNumber].HomeAddress.Street << " Street, flat " << Students[OldestNumber].HomeAddress.Flat << endl;
 
}


Вернуться к обсуждению:
Массив структур: найти самого младшего и самого старшего школьника
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2018, 09:19

Определить на сколько лет возраст самого старого человека превышает возраст самого младшего
В массиве хранится информация о годе рождения каждого из 30 человек, определить на сколько лет...

Структуры. Найти самого старшего мужчину
Используя записи с полями: дата - с полями число, месяц, год; анкета - с полями фамилия, пол, дата...

Найти самого старшего человека из списка
Написать програму, вход/выход, на вход/выход принимает количество людей какие подали ...

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