这个程序编译肯定是没有问题的,运行应该也没有问题,但是必须按照楼主在程序那里写法进行输入,才能正确或者运行下去。
这个程序先是系统提示用户输入商品的价格a,b,c,用户输入的格式必须是每输一个数,再空一格,三个都输完了再回车。
接着是系统计算出来应付款,并且输出。下一步就是系统提示用户输入实付款。但是这个时候有两个接受用户输入的scanf语句,也就是用户既要输入应付款,又要输入实付款,否则就不能继续运行下去。按理来说,这个时候用户只要输入应付款就行了。
接下来就是假设用户既输入的应付款,用户输入的实付款,系统计算找零,并且输出。这个时候用户自己又要输一次,早年否则整个程序就没法结束,或者也没法继续运行下去。
所以如果有问题,很可能就是楼主多了几条多余的scanf语句。
#include using namespace std; int main() { int sf;//顾客支付的人民币票面 double a,b,c,yf;//顾客所购商品的总价格 double balance;//找零的金额
whiIe(1)//这里少了句
{ printf("请输入药品费、床位费/天、住院天数:\n");//让用户输入顾客所购商品价格 scanf("%lf %lf %lf",&a,&b,&c); yf=a+b*c; printf("应付款:%.1lf",yf); printf("实付款:"); scanf("%lf",&yf); scanf("%d",&sf); balance=sf-yf; printf("应找零:%.1lf元\n",balance);//输出找零金额 scanf("%.1lf",balance); } return 0; }
#include
using namespace std;
int main()
{
int sf;//顾客支付的人民币票面
double a,b,c,yf;//顾客所购商品的总价格
double balance;//找零的金额
{
printf("请输入药品费、床位费/天、住院天数:\n");//让用户输入顾客所购商品价格
scanf("%lf %lf %lf",&a,&b,&c);
yf=a+b*c;
printf("应付款:%.2lf\n",yf);
printf("请输入实付款:");
scanf("%d",&sf); //这里用了整数
printf("实付款: %d\n", sf);
balance=sf-yf;
printf("应找零:%.1lf元\n",balance);//输出找零金额
}
return 0;
}