我正在編寫一個程序,對來賓列表中的家庭進行排序,除了一部分以外,我已經可以正常工作了。每個家庭都會得到一個優先號碼,同時還會給出參加聚會的家庭人數。但是,如果只有來自優先級別的一些家庭可以被邀請,而不是全部,則整個優先級別被跳過,並且賓客列表立即停止被填充。我在嘗試將邏輯放入代碼時遇到了一些麻煩。難以製作循環
這是我該函數代碼:
Check_Capacity(int FAMILIES_KNOWN, int CAPACITY, int Family_Members[], int Priority[])
{
int i, num_families = 0, num_guests = 0, count = 0;
for(i = 0; i < FAMILIES_KNOWN; i++)
{
count++;
while(Priority[i] == count)
{
num_guests += Family_Members[i];
if(num_guests <= CAPACITY)
{
num_families++;
}
else
{
break;
}
}
}
return num_families;
}
該代碼產生7個家庭參加派對,和24名成員。它應該是8個家庭和26個家庭成員。我很興奮,因爲我認爲我已經完成了這個項目,但是我們的老師補充說,我們必須確保優先級被視爲「整體」。
在這種情況下,FAMILIES_KNOWN是10和容量爲30以下是嘉賓名單:
BEN JOHNSON 4 2
DOUG ESPINOSA 3 2
SARAH TELLINGER 5 3
GRANT THOMPSON 5 2
JENNIFER WEST 7 6
JACKSON JOHNSON 1 5
MARTY MCFLY 4 1
ELIZABETH JAMES 2 6
MICKEY MOUSE 2 4
RAJ SHAH 2 5
第一個數字是家庭成員的數量,而第二個數字是優先級。假設我已經按優先級對列表進行了排序。有人有主意嗎?如果你不明白我想要做什麼,我可以更深入地解釋。
嘗試更改「我
N0ug4t
啊,我不認爲這樣做是大聲笑。它訣竅,現在看看它是否適用於更多的測試用例。 –
Nvm。當我試過時,我已經打開了以前版本的文件。不要這樣做:P。 –