C语言会议问题改错。安排会议使所使用会场数最少

Python013

C语言会议问题改错。安排会议使所使用会场数最少,第1张

这样改你试试:

#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

}