#include<stdio.h> #define MAX 100 void sort(int x[],int count) { int i,j,temp; for(i=0;i<=count;i++) { for(j=0;j<count-i;j++) { if(x[j]>x[j+1]) { temp=x[j+1]; x[j+1] = x[j]; x[j] = temp; } } } } void main() { int x[MAX]={0}; int y[MAX]={0}; int count=0,i,time=1,sum1=0,sum2=0; printf("输入来访与离开时间(0-24): \n"); printf("范例: 10 15\n"); printf("输入-1 -1时结束;\n"); printf("输入时间:\n"); //对访客的来访时间还有离开时间进行初始化 while(count<MAX) { scanf("%d%d",&x[count],&y[count]); if(x[count]<0) { count--; break; } count++; //count 表示一共来访的人数。 } //判断count的值是否需要减1; if(count>=MAX) { printf("\n当前的访客数达到最大值\n"); count--; } sort(x,count); sort(y,count); while(time<25) { sum1=0; sum2 =0; //计算在time 之前来了多少人; for(i=0;i<=count;i++) { if(time>x[i]) sum1++; } //计算在time+1之前离开的人数 for(i=0;i<=count;i++) { if((time)>y[i]) sum2++; } printf("%d点之前的人数为%d\n",time,sum1-sum2); time++; } getch(); }