题目
code
#include <stdio.h>
#include <string.h>
#include<algorithm>
using namespace std; //!!!!用sort 一定要有这个
struct milk{
char name[110];// 给它一个大小
double val;
double pri;
double per;
};
bool cmp(milk a,milk b){ //类型写错了!!!!!不是void 是bool
if(a.per==b.per){
return a.val>b.val;
}
else{
return a.per<b.per;
}
}
int main(){
int t;
struct milk a[110];
scanf("%d",&t);
int n;
while(t--){
scanf("%d",&n);//!!!!
for(int i=1;i<=n;i++){
scanf("%s %lf %lf",a[i].name,&a[i].pri,&a[i].val);
if(a[i].val<200){
a[i].per=1000000000;
}
else if((a[i].val/200)>6){
a[i].per=a[i].pri/6;
}
else{
a[i].per=a[i].pri/(a[i].val/200);
}
}
sort(a+1,a+n+1,cmp);
printf("%s\n",a[1].name);
}
return 0;
}
总结
- c语言sort函数
一定要有头文件
#include<algorithm>
using namespace std;
cmp的类型为bool型
2. scarf 的位置!在循环里