Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 13
Записей в блоге: 1
1

Вывести список людей, родившихся между двумя заданными датами

28.04.2018, 11:43. Показов 1103. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Описать структуру с именем ZNAK, содержащую следующие поля:
• фамилия, имя; • знак Зодиака; • дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия; • ввод с клавиатуры данных в массив, состоящий и элементов типа ZNAK;
• вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры; • если таких нет, выдать на дисплей соответствующее сообщение.

Непонятен только последний пункт:
•Вывод на экран списка людей, родившихся между двумя заданными с клавиатуры датами.

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
#include <iostream>
#include "cstring"
using namespace std;
struct Znak
{
    char Name[50];      // Имя и Фамилия
    char Zodiak[20];   // Знак зодиака
    int DR[3];        // Дата рождения
};
void main() {
    setlocale(LC_ALL,"Russian");
    const char *znaki[12] = { "Овен", "Телец", "Близнецы", "Рак", "Лев", "Дева",
    "Весы", "Скорпион", "Стрелец","Козерог","Водолей","Рыбы" };
    const int n = 3;  // кол-во записей
    Znak B[3];      // обявления массива структур
    int i = 0;      // счётчик записей
    for (int i = 0; i < n; i++) {
        cout << "Введите имю и фамилию через пробел:  ";
        cin.getline(B[i].Name, 50);
        cout << "Введите знак зодиака:  ";
        cin.getline(B[i].Zodiak, 20);
        cout << "Введите день рождения в формате (дд.мм.гг)  ";
        cin >> (B[i].DR[0]);
        cin.ignore();
        cin >> (B[i].DR[1]);
        cin.ignore();
        cin >> (B[i].DR[2]);
        cin.ignore();
        cout << endl;
    }
    char Zodiak[12];
    cout << "Введите знак зодиака: ";
    cin >> Zodiak;
    cin.ignore(1, '\n');
    for (int i = 0; i < n; i++) {
        if (strcmp(Zodiak, B[i].Zodiak) == 0) {
            cout << B[i].Name << endl;
            for (int j = 0; j < 3; j++)
                cout << B[i].DR[j] << ".";
            cin.ignore();
        }
    }
    if (strcmp(Zodiak, B[i].Zodiak) != 0) {
        cout << "Нет людей родившийся под этим знаком!" << endl;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2018, 11:43
Ответы с готовыми решениями:

Вычислить разницу в днях между двумя заданными датами
Парни надо написать программу, которая будет вычислять разницу в днях между двумя заданными датами.

Определить количество дней между двумя заданными датами. Фортран 77
Написать программу, определяющую количество дней между двумя заданными датами. Решите...

Напишите программу, определяющую количество дней между двумя заданными датами.
Напишите программу, определяющую количество дней между двумя заданными датами. Примечание: Года...

Написать программу, считающую кол-во дней между двумя заданными датами!
Помогите новичку!!! Нужно написать программу, позволяющую сосчитать количество дней между двумя...

1
223 / 188 / 97
Регистрация: 15.04.2018
Сообщений: 718
28.04.2018, 14:00 2
Не буду писать код, ты уж прости.
У тебя есть массив B[3], которые нужно проверить по границам рамок Znak min Znak max (надеюсь сам их сможешь создать). Самое очевидное решение, которое приходит в голову:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if(B[i].DR[3] > min.DR[3] && B[i].DR[3] < max.DR[3]){
    //true
}
else{
  if(B[i].DR[3] == min.DR[3] || B[i].DR[3] == max.DR[3]){
      //те же самые if, но уже с B[i].DR[2]
      //можешь это всё вынести в отдельную функцию и пользоваться рекурсией, либо написать 
      //не совсем красивый, но рабочий код с кучами if
      //стоит помнить, что на датах уже не должно быть сравнения B[i].DR[1] и min & max .DR[1]
  }
  else{ 
     //false
  }
}
0
28.04.2018, 14:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2018, 14:00
Помогаю со студенческими работами здесь

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

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

Вычислите количество дней между двумя датами,заданными в формате DD/MM/YYYY,включая начальный и конечный день.
Вычислите количество дней между двумя датами,заданными в формате DD/MM/YYYY,включая начальный и...

Вывести разницу в днях между двумя датами
Надо определить количество прошедших дней(даты ввести в формате dd/mm/yyyy)(можно считать что в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru