#include <stdio.h>
#define N 10
//typedef struct Meeting这句主要错在用typedef 的时候没有指定用那个符号来代替这个结构体变量;
struct Meeting
{ int num
int ST
int ET
}
//typedef struct Meeting M[10] 这句错在用M[10]来代替struct Meeting 类型,而不是定义了一个struct Meeting 的结构体数组。
struct Meeting M[10]
void input(struct Meeting a[N],int n)
{ int i
for(i=0i<ni++)
a[i].num=i+1
for(i=0i<ni++)
{ printf("Input the NO.%d meeting's ST and ET:\n",i+1)
scanf("%d%d",&a[i].ST,&a[i].ET)
}
}
int cmp(int x,int y)
{ if(x<=y)
return 0
else return 1
}
int main()
{ int room[N][N]={0},k,time[N]={0}
int n
int i,j,t,flag
printf("Input the number of meeting:\n")
scanf("%d",&n)
input(M,n)
k=1t=0
for(i=0i<ni++)
{ flag=0
for(j=0j<kj++)
{
if(cmp(M[i].ST,time[j])==1)
{ room[j][t]=M[i].num
t++
flag=1
break
}
}
if(flag==0)
{room[k][0]=M[i].num
time[k]=M[i].ST
k++
}
}
for(i=0i<ki++)
{ printf("The room NO.%d has meetings:\n",i)
for(j=0room[i][j]!=0j++)
printf("%4d",room[i][j])
printf("\n")
}
return 0
}
我用的编译器是DEV-C++,代码如下:#include <stdio.h>
#include <stdlib.h>
int beg[1000],end[1000]
int m[10001]
int half(int a,int b)
{
int teb,tee
int i,k
teb=beg[a]
tee=end[a]
i=a
k=b
while(i<k)
{
while(teb<=beg[k]&&i!=k) k--
beg[i]=beg[k]
end[i]=end[k]
while(teb>=beg[i]&&i!=k) i++
beg[k]=beg[i]
end[k]=end[i]
}
beg[i]=teb
end[i]=tee
return i
}
void quick(int a,int b)
{
int mid
mid=half(a,b)
if(a<mid-1) quick(a,mid-1)
if(mid+1<b) quick(mid+1,b)
}
int main(int argc, char *argv[])
{
int n,sum=0
int i,k
memset(m,0,sizeof(m))/*置0*/
scanf("%d",&n)
for(i=0i<ni++) scanf("%d %d",&beg[i],&end[i])
quick(0,n-1)/*快速排序*/
for(i=0i<ni++)
{
for(k=beg[i]+1k<=end[i]k++) m[k]++
}
for(i=0i<=10000i++)
if(m[i]>sum) sum=m[i]
printf("%d",sum)/*sum表示最少会议室*/
system("PAUSE")
return 0
}