это вопрос:Планирование в булевом массиве C++?
Напишите программу для отслеживания расписания в течение одного десяти минут и для сообщения о конфликтах планирования. Чтобы представить расписание, используйте массив bool размера 10; этот массив знает, занят ли какой-либо заданной минуты запланированной задачей или нет. Вы должны инициализировать все значения в этом массиве как false, указывая на то, что пользователь еще ничего не запланировал. 1. объявите массив нужного размера и типа. Инициализируйте его, как указано. Сделайте это, прежде чем продолжать.
Задача занимает ровно 1 минуту, но задачи будут повторяться в течение всего графика, как показано ниже. Задача будет иметь первый раз и интервал. Первый раз представляет собой целое число, которое указывает точную минуту, когда задача должна быть выполнена в первый раз. Интервал указывает количество минут до повторения задачи. Если интервал равен 0, задача не будет повторяться вообще (задача выполняется только один раз). Чтобы ввести эту задачу в наше расписание, мы будем устанавливать логическое значение в это время равным true. 2.Введите функцию, которая принимает массив, его размер и первый раз и интервал в качестве входов, и устанавливает соответствующие элементы массива в true.
Ваша программа должна неоднократно предлагать пользователю ввести два целых числа для первого раза и интервала. Если введено отрицательное значение для любого целого числа, программа должна завершиться. В противном случае ваша программа должна продолжить установку соответствующих мест в массиве расписания в true (используйте вашу функцию!).
Программа также должна проверять конфликты на этом пути. Конфликт возникает, если программа пытается запланировать новую задачу в местоположении в массиве расписания, для которого уже установлено значение true. Когда это произойдет, ваша программа должна напечатать на экране, что «КОНФЛИКТ ПРОСМОТРЕТСЯ В ВРЕМЕНИ Т», где T - это место в расписании, в котором был обнаружен конфликт. Подсказка: обнаружение конфликтов проще, чем кажется. Измените свою функцию!
Наконец, ваша программа должна отслеживать общее количество обнаруженных конфликтов с момента ее запуска и должно распечатывать это значение до того, как оно закончится. Подсказка: ваша функция может вернуть целое число, указывающее, сколько конфликтов было обнаружено при попытке запланировать текущую задачу. Вы также должны изменить способ использования этой функции!
, и это мой код, и я не знаю, что не так, но вы можете помочь. благодаря
#include <iostream>
using namespace std;
int schedule (bool arr[], int size, int firstTime, int interval)
{
int conflict = 0;
int n = firstTime - 1;
arr[n] = true;
do
{
arr[n + interval] = true;
n = n + interval;
if (arr[n + interval] == arr[n + interval])
{
cout << "A conflict has occurred at time " << n + interval << endl;
}
conflict = conflict + 1;
}
while (arr[n] == true);
cout << "Total conflicts detected: " << conflict << endl;
return conflict;
}
int main()
{
int firstTime, interval;
bool arr[10];
int i = 0;
while (i < 10)
{
arr[i] = false;
i = i + 1;
}
cout << "Please enter a value for firstTime and interval: " << endl;
cin >> firstTime >> interval;
while (firstTime >= 0 && interval >= 0)
{
schedule(arr, 10, firstTime, interval);
cout << arr << endl;
}
return 0;
}
У вас есть исправление отступ, пожалуйста? –
Если вы не знаете, что не так с вашим кодом, и вы тот, кто его компилирует, как вы ожидаете от нас знать? – nhgrif
Я не думаю, что 'cout << arr << endl;' делает то, что вы думаете. Вероятно, вы захотите написать функцию для отображения этого массива. –