本人小白,码龄不到两周,求大佬指点
如何设计一个循环,想让它停它才停,不限制最大输入的组数,比如下面这个题:
一个人去参加商店促销,有满减和打折两种券,可以同时使用。
第一行输入两个整数表示满减优惠活动,例如:100 50表示满一百减五十;
第二行输入一个(0,1)之间的数表示商店折扣;
以下多行输入所选商品的单价和数量,单价不一定是整数;
输出购买商品最少需要的金额,保留两位小数。
下面是我的代码:
#include<stdio.h>
int main()
{
int number,jian;
double zhe,shu,danjia,sum=0,realsum1,realsum2;
scanf("%d%d",&number,&jian);
scanf("%lf",&zhe);
while(~scanf("%lf%lf",&danjia,&shu))
{
sum+=danjia*shu;
}
if(sum*zhe>=number)
realsum1=sum*zhe-(int)(sum*zhe/number)*jian;
else
realsum1=sum*zhe;
if(sum>=number)
realsum2=(sum-(int)(sum/number)*jian)*zhe;
else
realsum2=sum*zhe;
if(realsum1>=realsum2)
printf("%.2lf",realsum2);
else
printf("%.2lf",realsum1);
return 0;
}
如果去掉while只输入一组数据得到的答案是正确的,但是现在这个结构无法输出数据。求大佬指点!