zoukankan      html  css  js  c++  java
  • C++最大访客数

    #include<stdio.h>
    #define Max 100
    int input(int *in,int *out)
    {
    int a,b;
    printf("请输入来访时间和离开时间 ");
    printf("范例:1 3 ");
    printf("餐会结束时请输入-1结束 ");
    int count;
    for(count=0;count<100;count++)
    {
    printf("第%d位访客来访时间和离开时间",count+1);
    scanf("%d%d",&a,&b);
    if((a!=-1)&&(b!=-1))
    {
    in[count]=a;
    out[count]=b;
    }
    else
    {
    break;
    }
    }
    return count+1;
    }
    void swap(int *p,int i,int j)
    {
    int temp;
    temp=p[i];
    p[i]=p[j];
    p[j]=temp;
    }
    void sort(int *p,int count)
    {
    for(int i=0;i<count;i++)
    {
    for(int j=i+1;j<count;j++)
    {
    if(p[i]>p[j])
    {
    swap(p,i,j);
    }
    }
    }
    }
    int sum(int *p,int time,int count)
    {
    int all=0;
    for(int i=0;i<count;i++)
    {
    if(p[i]<=time)
    {all=all+1;}
    }
    return all;
    }
    void output(int *in,int *out,int count)
    {
    int time=0;
    int inmall;
    int outmall;
    int stillIn;
    for(time=0;time<=24;time++)
    {
    inmall=sum(in,time,count);
    outmall=sum(out,time,count);
    stillIn=inmall-outmall;
    printf("%d时餐会的最大访客数为%d ",time,stillIn);
    }
    }
    void main()
    {
    int *in=new int;
    int *out=new int;
    int count=input(in,out);
    sort(in,count);
    sort(out,count);
    output(in,out,count);
    }

    主要的思想有点麻烦,想清楚后代码简单

    先分开记录访客的来访和离开的时间,分别放到两个数组中,

    对这两个数组排序,分别统计某一时刻来过的人,和已经离开的人,然后相减得到的便是这会的访客人数。

  • 相关阅读:
    安卓学习57
    安卓学习56
    安卓学习55
    安卓学习54
    安卓学习53
    安卓学习52
    安卓学习51
    安卓学习50
    安卓学习49
    安卓学习48
  • 原文地址:https://www.cnblogs.com/yunerlalala/p/5471429.html
Copyright © 2011-2022 走看看