#include <stdio.h>
int main(void)
{
int m, i;
scanf("%d", &m);
for(i = 1; i <= m; i++){
double mon, wei = 0, num;
int j, n;
int a[1000], b[1000];
scanf("%lf%d", &mon, &n);
for(j = 1; j <= n; j++)
scanf("%d %d", &a[j], &b[j]);
while(mon > 0.001){
int min = 1;
for(j = 1; j <= n; j++)
if(a[j] < a[min])
min = j;
num = mon / a[min];
if(num > b[min]){
wei += b[min];
mon -= a[min] * b[min];
a[min] = 999;
}
else{
wei += num;
mon -= a[min] * num;
a[min] = 999;
}
}
printf("%.2lf\n", wei);
}
}
能找出单价最便宜的米,将所购买的米的重量与最便宜的米的重量比较,从而决定如何相加。注意跳出循环时while的判断条件(给出的数据输出结果为浮点数)。