【发布时间】:2014-09-24 02:24:22
【问题描述】:
我有一个难题。从概念上讲,我想我知道我需要做什么。代码方面,我不太确定。
我想通过AVAIL_NURSE_W1[] 数组(其中包含对应于在 Week_1 有空的护士的数字),生成一个随机数来决定该数组中的一个插槽(如果插槽包含零值,然后生成另一个随机数并重试),取那个数字(这是一个护士),并将其放入MONDAY[] 数组中。
相关代码:
int main() {
int randomNurse();
srand(time_t(NULL));
/*0 = Denise, 1 = Inja, 2 = Jane, 3 = Karen, 4 = Maggie, 5 = Margaret, 6 = MJ, 7 = Queen, 8 = Sherri*/
/*-----WEEKLY_ASSIGNMENT-----*/
int AVAIL_NURSE_W1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //holds the numerical values of the nurses that CAN work each week
/*scans in first week*/
for (int column = 0; column < 4; column++) {
for (int num = 0; num < 9; num++) {
if (AVAIL_NURSE_W1[num] == select[0][column])
AVAIL_NURSE_W1[num] = 0;
}
}
/*-----MONDAY-----*/
int MONDAY[5]; //days of the week, number of jobs on a given day
for (int e = 0; e < 5; e++) { //loop for positions on monday
while (MONDAY[e] == 0) {
int temp_assign = randomNurse();
if (AVAIL_NURSE_W1[temp_assign] != 0) { //if the nurse IS available...
MONDAY[e] = AVAIL_NURSE_W1[temp_assign];
AVAIL_NURSE_W1[temp_assign] = 0; //we don't want to repeat nurses
} else {
continue;
}
}
}
return 0;
}
/*function to generate random nurse*/
int randomNurse() {
return rand() % 9; //random number 0-8, to pick nurse
}
我的问题:
我如何处理从AVAIL_NURSE_W1[] 数组中获取可用护士,生成一个随机数来决定从哪个插槽获取值,获取该值,将其存储在新数组MONDAY[] 中;如果AVAIL_NURSE_W1[]数组中的值是零,则重复上述过程,直到选择一个非零值;在我选择了一个值后,我会将选择的值更改为零,然后再次循环。
想要的结果MONDAY[] 数组应包含五个非零整数。没有重复。
到目前为止,while 循环条件似乎从未改变。
如果还有什么需要说的,请告诉我。我希望我已经提供了足够的信息。
【问题讨论】:
-
评论
scans in first week的部分发生了什么?select在哪里声明,在哪里填充数据? -
@dreamlax 我忽略了那个代码,因为上次我发布了一个关于这个的问题,它被“搁置了,因为它有太多的信息是离题的。”
标签: c for-loop random while-loop