c小白求助,只有一个点过了?bpbt
查看原帖
c小白求助,只有一个点过了?bpbt
832454
h826436楼主2023/9/12 09:11
#include <stdio.h>
void s(double a,double b)
{
	double c=a;
	a=b;
	b=c;
}
int main()
{
	int i,j,N;
	double ans,m[101],v[101],p[101],T;
	scanf("%d %lf",&N,&T);
	for(i=1;i<=N;i++)
	{
		scanf("%lf %lf",&m[i],&v[i]);
		p[i]=v[i]/m[i];
	}
	for(i=1;i<=N;i++)
	{
		for(j=1;j<N;j++)
		{
			if(p[j]<p[j+1])
			{
				s(p[j],p[j+1]);
				s(m[j],m[j+1]);
				s(v[j],v[j+1]);
			}
		}
	}
	for(i=1;i<=N;i++)
	{
		if(T-m[i]>-0.000001)
		{
			T-=m[i];
			ans=ans+v[i];
		}
		else 
		{
			ans=ans+p[i]*T;
			break;
		}
	}
	printf("%0.2lf",ans);
	return 0;
}
2023/9/12 09:11
加载中...