杭电的 ACM FatMouse✀ Trade 问题

2025-02-21 18:35:03
推荐回答(1个)
回答1:

帮你在你的代码基础上改的:
(看你的代码目前还有很多的语法错误,还要以后多多练习啊)

#include

int main ()
{
int i , catfood , numrate ,tempc,tempj,j,
int ratej[1000] , ratec[1000] ;
double javabeans,rate[1000] ;
while (1)
{
scanf ("%d%d",&catfood,&numrate);
if(catfood == -1)break;
for (i=0;i { /*输入每个仓库的catfood和javabeens的数量*/
scanf ("%d",&ratej[i]);
scanf ("%d",&ratec[i]);
}
for (i=0 ; i { /*在rate[i]中写入每一排仓库的性价比*/
if(ratec[i] == 0)rate[i] = -1; //0的情况
else
rate[i]=(ratej[i]*1.0/ratec[i]);
}
for (i=0 ; i { /*冒泡排序性价比rate*/
for (j=0 ; j<(numrate-i-1) ; j++)
if (rate[j+1] <0 || (rate[j]>=0 && rate[j] tempc=ratec[j];
tempj=ratej[j];
ratec[j]=ratec[j+1];
ratej[j]=ratej[j+1];
ratec[j+1]=tempc;
ratej[j+1]=tempj;
double x = rate[j];
rate[j] = rate[j+1];
rate[j+1] = x;
}
}
javabeans = 0;
for (i=0 ; i if (catfood >= ratec[i])
{
catfood=catfood-ratec[i] ;
javabeans+=ratej[i] ;

}
else {
javabeans+=(catfood*1.0*ratej[i]/ratec[i]);
break;
}
printf("%.3lf\n",javabeans);
}
return 0;
}