Wrong Answer 到吐。。。。牛奶价格一样时,不能忘了考虑量多少!
#include<stdio.h> #include<stdlib.h> #include<string.h> struct milk { char name[100]; int price; int v; }; int main() { int t,n,i,x,y,p=0; double min,k; scanf("%d",&t); while(t--) { y=0; struct milk thing[110],cheaper; memset(thing,0,sizeof(thing)); //memset(k,0,sizeof(k)); scanf("%d",&n); for(i=0;i<n;i++) scanf("%s%d%d",thing[i].name,&thing[i].price,&thing[i].v); cheaper=thing[0]; while(thing[y].v<200){ y++;} x=thing[y].v; x/=200; if(x>5)x=5; min=thing[y].price/(x); for(i=1;i<n;i++) { x=thing[i].v; if(x<200) continue; x/=200; if(x>5) x=5; k=(thing[i].price/(x)); if(min>k) { min=k; p=i; cheaper=thing[i]; } if(min==k) { if(thing[p].v>thing[i].v) cheaper=thing[p]; else cheaper=thing[i]; } } printf("%s\n",cheaper.name); } system ("pause"); return 0; }