编辑代码

#include <iostream>
using namespace std;
#define RANGE 15
void class_select(float start[], float end[], int length, bool isArrange[]) {
	bool isisarr[RANGE];
	isArrange[1] = true;
		
	isisarr[1] = false;
	float ming=100;
	int min=100 ;
	int previous = 1;
	int i;
	while (ming != 0) {
		for ( i = 2; i < length; i++) //当开始时间大于等于结束时间就可以安排到课室上课
        {
			if (start[i] >= end[previous])//如果开始时间晚于结束时间,就表示两个课程的时间重叠了,讲这个课程进行标记
             {

				isisarr[i] = true;
			}
			else
				isisarr[i] = false;//标记和其他课程时间不重叠,未被安排
		}
			ming = 100;
		for (i = 1; i < length; i++) {
		
			if (isisarr[i])
			{
				if (end[i] < ming)
				{
					ming = end[i];
					min = i;
				}
			}
		}
		isArrange[min] = 1;
		if (previous == min)
		{
			ming = 0;
		}
		else
		{
			previous = min;
		}
		
	}
	for (int i = 1; i < length; i++) {
		if (isArrange[i])
			cout << "class number is:" << i << endl;
	}
}
int main()
 {
     //初始化数据,对课程的开始时间和结束时间进行记录
	float start[] = { 0,8,8.5,9.5,10,11.5 };
	float end[] = { 0,9.5,10,12,11,12.5 };
	bool isArrange[RANGE]={0};
	class_select(start, end, sizeof(start) / sizeof(int), isArrange);
}