profile
Размещено 5 лет назад по предмету Информатика от yozhik19rus

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

  1. Ответ на вопрос
    Ответ на вопрос дан Arkassssha

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

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

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

    #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:%02dn", 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;

    }

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.