题目大意:
台风把凯蒂家的房子损坏了,知道墙的宽,输入墙的长和木板的长,宽度一样,问最少需要多少木板?
排序用的qsort
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(int *)b-*(int *)a;
}
int main(int argc,char *argv[])
{
int l,n,i,a[1000],sum;
while(scanf("%d %d",&l,&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
qsort(a,n,sizeof(a[0]),cmp);
sum=0;
for(i=0;i<n;i++)
{
sum+=a[i];
if(sum>=l){break;}
}
i==n?printf("impossible\n"):printf("%d\n",i+1);
}return 0;
}
排序用sort
#include<stdio.h>
#include<algorithm> linux操作系统不能用,可以用
qsort 排序
using namespace std;
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int l,n,i,a[1000],sum,x,y;
while(scanf("%d %d",&l,&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n,cmp);
for(i=0;i<n;i++)
{printf("%d ",a[i]);
}
sum=0;
for(i=0;i<n;i++)
{
sum+=a[i];
if(sum>=l){break;}
}
i==n?printf("impossible
\n"):printf("%d\n",i+1);
}return 0;
}