這就是問題:調度在布爾數組C++中?
編寫一個程序,以跟蹤一個時間間隔10分鐘的時間表並報告調度衝突。要表示日程表,請使用大小爲10的bool數組;這個數組知道是否任何給定的分鐘被一個計劃任務佔用。你應該初始化這個數組中的所有值爲false,表示用戶還沒有計劃任何事情。 1.聲明一個正確大小和類型的數組。如圖所示初始化它。在繼續之前這樣做。
任務只需要1分鐘,但任務將在整個計劃中重複,如下所示。任務將有第一次和一個時間間隔。第一次是一個整數,表示第一次完成任務的確切時間。間隔表示直到任務重複的分鐘數。如果間隔爲0,則任務不會重複(因此任務只發生一次)。爲了將這個任務輸入到我們的計劃中,我們將在任何時候將布爾值設置爲true。 2.編寫一個將數組,它的大小,第一次和間隔作爲輸入的函數,並將相應的數組元素設置爲true。
您的程序應重複提示用戶輸入兩個整數的第一次和間隔。如果輸入任一整數的負值,程序應該終止。否則,你的程序應該繼續在schedule數組中設置合適的位置爲true(使用你的函數!)。
程序還應該檢查一路上的衝突。如果程序嘗試在計劃數組中已設置爲true的位置安排新任務,則會發生衝突。發生這種情況時,程序應打印到「在時間T發生衝突」的屏幕上,其中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;'是做你認爲它做的。你可能會想寫一個函數來顯示該數組。 –