c语言20分求助,球球大牛们
查看原帖
c语言20分求助,球球大牛们
497734
Aozaki楼主2023/10/10 18:37
#include <stdio.h>
void swap(double a,double b)
{
	double t;
		t=a;
		a=b;
		b=t;
}
double w[101],v[101];
double ans=0;
double a[101];
int W;
int main()
{
    int n,i,j;
    scanf("%d%d",&n,&W);
    for(i=1;i<=n;i++)
    {
    	scanf("%lf%lf",&w[i],&v[i]);
	}
	for(i=1;i<=n;i++)
	{
		a[i]=v[i]/w[i];
		for(j=1;j<n;j++)
		{
			if(a[j+1]>a[j])
			{
				swap(a[j+1],a[j]);
				swap(w[j+1],w[j]);
				swap(v[j+1],v[j]);
			}
		}
	}
	for(i=1;i<=n;i++)
    {
        if(W>=w[i])
        {
            W=W-w[i];
            ans=ans+v[i];
        }
        else
        {
            ans=ans+W*1.0*a[i];
            break;
        }
    }
    printf("%.2lf",ans);
	return 0;
}

2023/10/10 18:37
加载中...