c语言 摘桃子问题

输入文件(pea.in)
第一行两个正整数m和n(n<=100,m<=20),m为桃子的总数,n为朋友人数。
第二行m个正整数,分别表示每个桃子的高度(每个桃子高度不超过300厘米)。
第三行n个正整数,分别表示每个朋友伸手能达到的高度(每个朋友伸手所能达到的最大高度不超过300厘米)。
输出文件(pea.out)
一个整数,表示所有朋友最多能摘到的桃子总数。

#include<stdio.h>
int partition(int a[],int low,int high)
{
    int key;
    key=a[low];
    while(low<high)
    {
        while(low<high&&a[high]>=key) high--;
        a[low]=a[high];
        while(low<high&&a[low]>=key) low++;
        a[high]=a[low];
    }
    a[low]=key;
    return low;
}
void QSort(int a[],int low,int high)
{
    int loc;
    if(low<high)
    {
        loc=partition(a,low,high);
        QSort(a,low,loc-1);
        QSort(a,loc+1,high);
    }
}
void pea()
{
    int i,j=0,m,n,k=0;
    int pea[100],person[20];
    scanf("%d %d",&m,&n);
    for(i=0;i<m;i++)
        scanf("%d",&pea[i]);
    getchar();
    for(i=0;i<n;i++)
        scanf("%d",&person[i]);
    QSort(pea,0,m-1);
    QSort(person,0,n-1);
    for(i=0;i<20;i++)
    {
        if(person[i]>pea[j]) 
        {
            k++;j++;
            if(person[i]>pea[j]){k++;j++;}
        }
    }
        printf("%d",k);
}
int main()
{   
    freopen("pea.in","r",stdin);
    freopen("pea.out","w",stdout);
    pea();
    return 0;
} 

麻烦帮忙看下程序

查看全部
sinat_31829943
sinat_31829943
2015/11/04 15:12
  • c
  • 点赞
  • 收藏
  • 回答
    私信

1个回复