• Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Василий Мельников, да компилируется, спасибо большое.
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Василий Мельников,
    #include "pch.h"
    #include <iostream>
    
    using namespace std;
    
    const int NUM_OF_TRAIN = 25;
    const int MAX = 80;
    
    struct Time
    {
    	int hour, minutes;
    };
    
    struct Train
    {
    	char direction[MAX];
    	Time arival, departure;
    };
    
    void random(Train trains[])
    {
    	const char * directions[NUM_OF_TRAIN][100] = { "baranovichi-zhitomir",
    	 "minsk-simferopol",
    	 "kaliningrad-adler",
    	 "minsk-odessa",
    	 "minsk-simferopol",
    	 "minsk–kalinkovichi–gomel",
    	 "minsk-gomel",
    	 "minsk-adler",
    	 "minsk-mineralnye",
    	 "minsk-anapa",
    	 "minsk-feodosiya",
    	 "minsk-kiev",
    	 "minsk-simferopol",
    	 "baranovichi-mariupol",
    	 "minsk-evpatoriya",
    	 "simferopol-minsk",
    	 "grodno-gomel",
    	 "simferopol-minsk",
    	 "gomel-minsk",
    	 "minsk–kalinkovichi",
    	 "mariupol-minsk",
    	 "minsk-kishinev",
    	 "baranovichi-zhitomir",
    	 "minsk-simferopol",
    	 "kaliningrad-adler" };
    
    	for (int i = 0; i < NUM_OF_TRAIN; i++)
    	{
    		trains[i].arival.hour = 0 + rand() % 23;
    		cout << "Time arrival: " << trains[i].arival.hour << " hour, ";
    		trains[i].arival.minutes = 0 + rand() % 59;
    		cout << trains[i].arival.minutes << " minutes" << endl;
    		trains[i].departure.hour = 0 + rand() % 23;
    		cout << "Time departure: " << trains[i].departure.hour << " hour, ";
    		trains[i].departure.minutes = 0 + rand() % 59;
    		cout << trains[i].departure.minutes << " minutes" << endl;
    		strcpy_s(trains[i].direction, *directions[i]);
    		cout << trains[i].direction << endl << "-----------------------------------------------" << endl;
    	}
    };
    
    
    int hour_to_minutes(Time T)
    {
    	return (T.hour * 60) + T.minutes;
    };
    
    int main()
    {
    	Train trains[NUM_OF_TRAIN];
    	Time time_user;
    	int hour_to_minutes(Time);
    	random(trains);
    	cout << "Enter time (h, m)" << endl;
    	cin >> time_user.hour >> time_user.minutes;
    	for (int i = 0; i < NUM_OF_TRAIN; i++)
    	{
    		if (hour_to_minutes(trains[i].arival) > hour_to_minutes(trains[i].departure))
    		{
    			if ((hour_to_minutes(time_user) >= hour_to_minutes(trains[i].arival) && hour_to_minutes(time_user) <= 1439) || (hour_to_minutes(time_user) >= 0 && hour_to_minutes(time_user) <= hour_to_minutes(trains[i].departure)))
    			{
    				if (hour_to_minutes(trains[i].departure) >= hour_to_minutes(time_user))
    				{
    					cout << "remaining time: " << (1439 - hour_to_minutes(trains[i].arival) + hour_to_minutes(time_user)) / 60 << " hour " << (1439 - hour_to_minutes(trains[i].arival) + hour_to_minutes(time_user)) % 60 << " minutes" << endl;
    					cout << "Direction: " << trains[i].direction << endl << "------------------------------------------" << endl;
    				}
    
    				if (hour_to_minutes(time_user) >= hour_to_minutes(trains[i].arival))
    				{
    					cout << "remaining time: " << (hour_to_minutes(time_user) - hour_to_minutes(trains[i].arival)) / 60 << " hour " << (hour_to_minutes(time_user) - hour_to_minutes(trains[i].arival)) % 60 << " minutes" << endl;
    					cout << "Direction: " << trains[i].direction << endl << "------------------------------------------" << endl;
    				}
    			}
    		}
    
    		if (hour_to_minutes(trains[i].arival) < hour_to_minutes(trains[i].departure))
    		{
    			if ((hour_to_minutes(time_user) > hour_to_minutes(trains[i].arival)) && (hour_to_minutes(time_user) < hour_to_minutes(trains[i].departure)))
    			{
    				cout << "remaining time: " << ((hour_to_minutes(trains[i].departure) - hour_to_minutes(time_user)) / 60) << " hour " << ((hour_to_minutes(trains[i].departure) - hour_to_minutes(time_user) % 60)) << " minutes" << endl;
    				cout << "Direction: " << trains[i].direction << endl << "------------------------------------------" << endl;
    			}
    		}
    	}
    
    	system("pause");
    	return 0;
    };
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    const char * directions[NUM_OF_TRAIN][100] вроде исправило эту проблему.

    UPD: Не тут то было 5c0bf9eab6503322131973.png

    UPD 2: I am available via Telegram @shestakov_vladislav
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Василий Мельников, ну я понимаю смысл, но например в том же javascript все гораздо более просто с типами данных, оно там по большей все само преобразовывается и меня такие моменты в с++ огорчают, он как бы больше внимания к себе требует :). Просто у нас был только в первом семестре первого курса вводный курс в с++ и теория по с++ самая базовая. Это я чьи-то решения прошлогодние нашел, исправляю в них ошибки. https://vue-laravel.blogspot.com/2015/01/blog-post... . Ладно, буду разбираться дальше)
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Василий Мельников, 5c0beff329f91869294450.png
    Не знаете в чем тут может быть ошибка?
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Василий Мельников, ну, у нас преподаватель (молодая аспирантка, HR-менеджер в какой-то компании) не проводит ни лекции, ни пз, ни лб, и просто дала эти 100 задач на весь семестр и еще так же сделает в следующем семестре. На защите спрашивает только 1 задачу из 10 и засчитывает, сама она не программист, поэтому наши недочеты в лабах условны и могут быть ей не понятны, как мне) Сами условия задач, насколько мне удалось выяснить, составляли на кафедре программной инженерии для курса по java. Мы как бы вообще не на программистов учимся, мы на кибербезопасность и управление информационной безопасностью учимся. Поэтому интересная информация по этой теме более актуальна для нас) Вот такие пироги
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Василий Мельников, ну, я и не против :) Я просто к тому, что я себя в этом не вижу. Я больше веб-разботчик, это группе дали 100 задач по программированию, меня попросили одногруппники сделать им половину вторую за материальное вознаграждение. Я свой зачет уже получил, потому что сайтами для кафедры занимался.
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Василий Мельников, это условие задачи, а не моя прихоть. Ну, то, что ты говоришь это правильно и умно, но я вообще не разработчик, я просто студент, который делает домашку по программированию :)
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    наверное лучше не объявлять эту переменную в main, а просто возвращать её как результат функции и проблем не будет, правда как это правильно сделать другой вопрос
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Saboteur, понял, подскажите функцию или конструкцию корректную для этого, пожалуйста. Что-то вроде game = new int; либо *game = new int; генерирует другие ошибки, видимо связанные со следующей передачей в другие функции, которые нужно как-то поправить . (Уже не надо, см. ответ)
  • Исправить ошибку - программа на С++?

    do_while
    @do_while Автор вопроса
    Александр, Суть задачи, в том, чтобы была отдельная "функция динамического выделения памяти под массив", так бы я в main определил и было бы все норм, но нужно в отдельной функции как-то так и делаю.