#include<stdio.h>
#include<stdlib.h>
int main(){
int num,n;
float max=0;
double total=0;
int c=10;
double VT[10]={};
int value[10]={};
int tiji[10]={};
printf("请输入物品数目");
scanf("%d",&n);
printf("请输入每件物品价值");
for(int i=0;i<=n-1;i++){
scanf("%d",&value[i]);
}
printf("请输入每件物品体积");
for(int j=0;j<=n-1;j++){
scanf("%d",&tiji[j]);
}
for(int k=0;k<=n-1;k++){
VT[k]=value[k]/tiji[k];
}
while(c>0){
for(int l=0;l<=n-1;l++){
if(max<=VT[l]){
max=VT[l];
num=l;
}
if(c>=tiji[num]){
c=c-tiji[num];
total+=value[num];
VT[num]=0;
}
if(c<tiji[num]){
total+=c*VT[num];
c=0;
}
}
}
printf("最大价值是");
printf("%lf",total);
return 0;
} 输入 价值18 20 20 21 18
体积 2 4 5 3 6
最大价值应该是63为什么输出90
而两组1 2 3 4 5可以得出正确结果