杭电acm1070题。绝对水题,各种WA?求大牛们帮忙看看错到哪了、、、
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1070#include<stdio.h>#include<iostream...
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1070
#include<stdio.h>
#include<iostream>
using namespace std;
struct milk
{
string ch;
float jg;
int sl;
}leixing1[101];
int main()
{
int ri,repeat,i,j,d,k;
float s,n,min;
string ch1;
cin>>repeat;
for(ri=0;ri<repeat;ri++)
{
min=100000000.0;
cin>>n;
for(i=0;i<n;i++)
{
cin>>leixing1[i].ch>>leixing1[i].jg>>leixing1[i].sl;
}
for(i=0;i<n;i++)
{
if(leixing1[i].sl<200)
continue;
else if(leixing1[i].sl>1000)
{
d=5;
s=leixing1[i].jg/d;
if(s<min||(s==min&&leixing1[k].sl<leixing1[i].sl))
{
min=s;
ch1=leixing1[i].ch;
k=i;
}
}
else
{
d=leixing1[i].sl/200;
s=leixing1[i].jg/d;
if(s<min||(s==min&&leixing1[k].sl<leixing1[i].sl))
{
min=s;
ch1=leixing1[i].ch;
k=i;
}
}
}
cout<<ch1<<endl;
}
return 0;
} 展开
#include<stdio.h>
#include<iostream>
using namespace std;
struct milk
{
string ch;
float jg;
int sl;
}leixing1[101];
int main()
{
int ri,repeat,i,j,d,k;
float s,n,min;
string ch1;
cin>>repeat;
for(ri=0;ri<repeat;ri++)
{
min=100000000.0;
cin>>n;
for(i=0;i<n;i++)
{
cin>>leixing1[i].ch>>leixing1[i].jg>>leixing1[i].sl;
}
for(i=0;i<n;i++)
{
if(leixing1[i].sl<200)
continue;
else if(leixing1[i].sl>1000)
{
d=5;
s=leixing1[i].jg/d;
if(s<min||(s==min&&leixing1[k].sl<leixing1[i].sl))
{
min=s;
ch1=leixing1[i].ch;
k=i;
}
}
else
{
d=leixing1[i].sl/200;
s=leixing1[i].jg/d;
if(s<min||(s==min&&leixing1[k].sl<leixing1[i].sl))
{
min=s;
ch1=leixing1[i].ch;
k=i;
}
}
}
cout<<ch1<<endl;
}
return 0;
} 展开
4个回答
展开全部
#include<stdio.h>
#include<iostream>
#include<string> // 添加string库
using namespace std;
struct milk
{
string ch;
double jg; //jg 用double
int sl;
}leixing1[101];
int main()
{
int ri,repeat,i,j,d,k,n; // n 用int
double s,min; // s,min 用double
string ch1;
cin>>repeat;
for(ri=0;ri<repeat;ri++)
{
min=100000000.0;
cin>>n;
for(i=0;i<n;i++)
{
cin>>leixing1[i].ch>>leixing1[i].jg>>leixing1[i].sl;
}
for(i=0;i<n;i++)
{
if(leixing1[i].sl<200)
continue;
else if(leixing1[i].sl>1000)
{
d=5;
s=leixing1[i].jg/d;
if(s<min||(s==min&&leixing1[k].sl<leixing1[i].sl))
{
min=s;
ch1=leixing1[i].ch;
k=i;
}
}
else
{
d=leixing1[i].sl/200;
s=leixing1[i].jg/d;
if(s<min||(s==min&&leixing1[k].sl<leixing1[i].sl))
{
min=s;
ch1=leixing1[i].ch;
k=i;
}
}
}
cout<<ch1<<endl;
}
return 0;
}
#include<iostream>
#include<string> // 添加string库
using namespace std;
struct milk
{
string ch;
double jg; //jg 用double
int sl;
}leixing1[101];
int main()
{
int ri,repeat,i,j,d,k,n; // n 用int
double s,min; // s,min 用double
string ch1;
cin>>repeat;
for(ri=0;ri<repeat;ri++)
{
min=100000000.0;
cin>>n;
for(i=0;i<n;i++)
{
cin>>leixing1[i].ch>>leixing1[i].jg>>leixing1[i].sl;
}
for(i=0;i<n;i++)
{
if(leixing1[i].sl<200)
continue;
else if(leixing1[i].sl>1000)
{
d=5;
s=leixing1[i].jg/d;
if(s<min||(s==min&&leixing1[k].sl<leixing1[i].sl))
{
min=s;
ch1=leixing1[i].ch;
k=i;
}
}
else
{
d=leixing1[i].sl/200;
s=leixing1[i].jg/d;
if(s<min||(s==min&&leixing1[k].sl<leixing1[i].sl))
{
min=s;
ch1=leixing1[i].ch;
k=i;
}
}
}
cout<<ch1<<endl;
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
上海盛仪自动化仪表
2024-04-08 广告
2024-04-08 广告
上海盛仪自动化仪表有限公司属专业销售上海仪表产品的电子商务网站。 下设技术中 心、销售中 心、进出口部以及4家系统工程中 心等,上海自动化仪表股份有限公司销售产品有工业生产过程控制系统、成套装置和仪表、可编程序控制器(PLC)、不间断电(U...
点击进入详情页
本回答由上海盛仪自动化仪表提供
展开全部
在第一种情况下,伊利牛奶可以喝了2天,费用10元。蒙牛牛奶可以喝5天,它的成本20元。因此,蒙牛是最便宜的。
在第二种情况下,光明牛奶应该被忽略。烟牌牛奶可以喝5天,但它的成本40元。因此,蒙牛是最便宜的。
如果有超过一个最便宜的品牌,你应该选择容量最大的那个品牌。
在第二种情况下,光明牛奶应该被忽略。烟牌牛奶可以喝5天,但它的成本40元。因此,蒙牛是最便宜的。
如果有超过一个最便宜的品牌,你应该选择容量最大的那个品牌。
追问
这些都考虑了,实在找不出错误的地方,很纠结,麻烦你帮我看看我的代码那错了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
AC代码,要小心只能喝五天
#include <iostream>
using namespace std;
struct Node
{
char name[102];
int price;
int ml;
int per;
}Milk[102];
int pri(Node&mi)
{
Node mil = mi;
while (mil.ml > 200)
{
mil.ml -= 200;
mil.per++;
if (mil.per == 5) //最多只能喝5天
{
break;
}
}
return mil.per;
}
int main()
{
int t;
cin>>t;
while (t--)
{
Milk[101].price = 100000;
Milk[101].per = 1;
int n;
cin>>n;
for (int i=0; i<n; ++i)
{
cin>>Milk[i].name>>Milk[i].price>>Milk[i].ml;
Milk[i].per = 0;
}
for (int i=0;i<n; ++i)
{
if(Milk[i].ml < 200)
continue;
else
{
Milk[i].per = pri(Milk[i]);
if(Milk[i].price/Milk[i].per < Milk[101].price/Milk[101].per) //计算性价比
{
Milk[101].price = Milk[i].price;
Milk[101].per = Milk[i].per;
strcpy(Milk[101].name,Milk[i].name);
Milk[101].ml = Milk[i].ml;
continue;
}
if(Milk[i].price/Milk[i].per == Milk[101].price/Milk[101].per) //性价比相同选容量大的
{
if (Milk[i].ml > Milk[101].ml)
{
Milk[101].price = Milk[i].price;
Milk[101].per = Milk[i].per;
strcpy(Milk[101].name,Milk[i].name);
Milk[101].ml = Milk[i].ml;
}
}
}
}
cout<<Milk[101].name<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
struct Node
{
char name[102];
int price;
int ml;
int per;
}Milk[102];
int pri(Node&mi)
{
Node mil = mi;
while (mil.ml > 200)
{
mil.ml -= 200;
mil.per++;
if (mil.per == 5) //最多只能喝5天
{
break;
}
}
return mil.per;
}
int main()
{
int t;
cin>>t;
while (t--)
{
Milk[101].price = 100000;
Milk[101].per = 1;
int n;
cin>>n;
for (int i=0; i<n; ++i)
{
cin>>Milk[i].name>>Milk[i].price>>Milk[i].ml;
Milk[i].per = 0;
}
for (int i=0;i<n; ++i)
{
if(Milk[i].ml < 200)
continue;
else
{
Milk[i].per = pri(Milk[i]);
if(Milk[i].price/Milk[i].per < Milk[101].price/Milk[101].per) //计算性价比
{
Milk[101].price = Milk[i].price;
Milk[101].per = Milk[i].per;
strcpy(Milk[101].name,Milk[i].name);
Milk[101].ml = Milk[i].ml;
continue;
}
if(Milk[i].price/Milk[i].per == Milk[101].price/Milk[101].per) //性价比相同选容量大的
{
if (Milk[i].ml > Milk[101].ml)
{
Milk[101].price = Milk[i].price;
Milk[101].per = Milk[i].per;
strcpy(Milk[101].name,Milk[i].name);
Milk[101].ml = Milk[i].ml;
}
}
}
}
cout<<Milk[101].name<<endl;
}
return 0;
}
追问
AC的代码我有的,我的代码应该是对的,实在找不出错误的地方,很纠结,麻烦你帮我看看我的代码那错了?
追答
真看不出来。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我提交了下,应该是float jg和float s,n,min的问题,替换为int之后,顺利AC。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询