编辑代码

#include <iostream>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 100
using namespace std;

typedef struct {
	char name[20]; //存储课程的名字
	int S = 0;  //存储上课时间
	int E = 0; //存储下课时间
}Course;

Course arr[5] = {
	{"高数\t",800,930},
	{"电子商务\t",830,1000},
	{"数据结构\t",930,1200},
	{"计算机基础\t",1000,1100},
	{"C语言\t",1130,1230}
};

// 分类,根据下课时间分类
void sort(Course arr[])
{
Course w;
for (int i = 0; i < 5; i++)
{
	for (int j = i+1; j < 5; j++)
	{
	if (arr[i].E > arr[j].E)
	{
		w = arr[j];
		arr[j] = arr[i];
		arr[i] = w;
	}
	}
	}
}

//打印课表
void OutP1(Course arr[])
{
	printf("课程\t上课\t下课\n");
	for (int i = 0; i < 5; i++)
	{
		cout<< arr[i].name<<" " << arr[i].S / 100 << ":" << arr[i].S % 100 << "\t\t" << arr[i].E / 100 << ":" << arr[i].E % 100 << endl;
	}
}

// 打印根据贪心法得出来的课程
void OutP2(Course arr[],int n)
{
	cout << "---可安排课程:---" << endl;
	cout << "课程名称\t" << "开始时间\t" << "结束时间\t" << endl;
	for (int i = 0; i < n; i++)
	{
		cout << arr[i].name << " " << arr[i].S /100<<":"<< arr[i].S% 100 << "\t\t" << arr[i].E / 100 << ":" << arr[i].E % 100 << endl;
	}
}


void CourseArr(Course arr[])
{
	Course temp=arr[0];
	int j = 1;
	for (int i = 1; i < 5; i++)
	{
		if (arr[i].S > temp.E) //当循环到的课程的上课时间大于临时变量的下课时间 ,课程将不会被安排
		{
			arr[j] = arr[i];
			temp = arr[i];
			j++;
		}
	}
	OutP2(arr, j);
}



int main()
{
	OutP1(arr);
	sort(arr);
	OutP1(arr);
	CourseArr(arr);
}