关于#while#的问题,如何解决?

问题遇到的现象和发生背景

img

只输入一个金额,就直接结束程序,并且报错

问题相关代码,请勿粘贴截图

#include
int main()
{
double totlo = 0, dues, saving;
double price, pay, change;
int flag = 1;
int counter = 0;
while (flag == 1)
{
printf("请输入第%d件商品的价格:", ++counter);

scanf_s("%1f", &price);
if (price < 0.01)
flag = 0;
else
totlo = totlo + price;

}
if (totlo < 200)
dues = totlo * 0.9;
else if (totlo < 500)
dues = totlo * 0.8;
else if (totlo < 1000)
dues = totlo * 0.7;
else
dues = totlo * 0.65;
saving = totlo - dues;
printf("共买了%d件商品,实际花费%.2f元\n", counter - 1, dues);
printf("优惠价格%.2f\n", saving);
scanf_s("%.2f", &pay);
printf("实付金额%.2f元\n", pay);

if (pay >= dues)
{
change = pay - dues;
printf("找零金额%.2f\n", change);
}
else
printf("付款不足\n");
return 0;

}

scanf_s("%lf", &price); 中 %lf 是小写l 你把l写成了数值1

你这输入的也不是浮点数啊,是整型啊,所以报错吧。

scanf_s("%1f", &price);
写错了应该是%lf

img

是%lf,不是1f,写错了l写成了数字一

img