Есть ответ 👍

Вывести на экран таблицу значений функции y=2x^2+4
УМОЛЯЮ

120
488
Посмотреть ответы 1

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

Hika34
4,4(96 оценок)

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

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

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

#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;

}

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