Есть ответ 👍

Напишите программу на C++

228
314
Посмотреть ответы 2

Ответы на вопрос:


Решал я через односвязный линейный список.

Сделал фильтры ввода данных (программа завершается если поступили некорректные данные)

Код программы:

#include <stdio.h>

#include <locale>

#include <cstdio>

#include <cstdlib>

using namespace std;

typedef struct TIME {

   int h;

   int m;

   int s;

   struct TIME* next;

};

TIME *vvod() {

    TIME* data;

    data = new TIME();

    printf("Часы = ");

    scanf("%d", &data->h);

    if (data->h > 23 || data->h < 0) {

        printf("Некорректный ввод времени");

        exit (1);

    }

    printf("Минуты = ");

    scanf("%d", &data->m);

    if (data->m > 59 || data->m < 0) {

        printf("Некорректный ввод времени");

        exit(1);

    }

    printf("Секунды = ");

    scanf("%d", &data->s);

    if (data->s > 59 || data->s < 0) {

        printf("Некорректный ввод времени");

        exit(1);

    }

    data->next = NULL;

    return data;

}

void print(TIME *begin) {

    TIME* temp;

    temp = begin;

    while (temp != NULL) {

        printf("%d:%02d:%02d\n", temp->h, temp->m, temp->s);

        temp = temp->next;

    }

}

int main()

{    

   setlocale(LC_ALL, "Russian");

   int n, i, max, c = 0, d = 0;

   bool r;

   TIME *begin, *krug, *temp;

   printf("Введите количество кругов:\n");

   scanf("%d", &n);

   if (n <= 0) {

       printf("Некорректный ввод количества кругов");

       return 1;

   }

   printf("\n");

   printf("Введите время начала круга:\n");

   begin = vvod();

   temp = begin;

   

   for (i = 0; i < n; i++) {

       printf("\n");

       printf("Введите время %d круга", i + 1);

       printf("\n");

       krug = vvod();

       r = temp->h <= krug->h && temp->m <= krug->m && temp->s < krug->s || temp->h < krug->h || temp->h == krug->h && temp->m < krug->m ;

       if (r == 0) {

           printf("Неккоректный ввод времени круга");

           return 1;

       }

       temp->next = krug;

       temp = krug;

   }

   printf("\n");

   print(begin);

   

   temp = begin;

   max = 0;

 

   for(i = 0; i < n;i++) {

       c = temp->h * 3600 + temp->m * 60 + temp->s;

       temp = temp->next;

       if (temp == NULL) {

           break;

       }

       d = temp->h * 3600 + temp->m * 60 + temp->s;

       if (d - c > max)

           max = d - c;

   }

   printf("\n");

   printf("%d", max);

   printf("\n");

   return 0;

}


2)изображаемий

Объяснение:

От 0 до 32- управляющий, от 32 до 127- изображаемый

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

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

Подпишись на наш телеграмм канал

GTP TOP NEWS