
解题心得:
- 记得初始化
#include<stdio.h>
#include<stdlib.h>
struct store{
int jgood;
int food;
float value;
}stores[1001];
int main(){
int m,n;
while(scanf("%d %d",&m,&n)){
if(m==-1&&n==-1){
break;
}
int i,j;
float sum=0;
struct store tmp;
for(i=0;i<n;i++){
scanf("%d %d",&stores[i].jgood,&stores[i].food);
stores[i].value=stores[i].jgood*1.0/stores[i].food;
}
for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
if(stores[j].value<stores[j+1].value){
tmp=stores[j];
stores[j]=stores[j+1];
stores[j+1]=tmp;
}
}
}
for(i=0;i<n;i++){
if(m-stores[i].food<0)
break;
m-=stores[i].food;
sum+=stores[i].jgood;
}
if(m>0){
sum=sum+stores[i].jgood*m*1.0/stores[i].food;
}
printf("%.3f\n",sum);
}
}
/*
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
*/
网友评论