额,还得再说一遍啊。。。
程序代码:
#include<stdio.h>
int main()
{
char goods[20],c[3]; //商品名,退出标识符
int num,total,i; //商品数量,数量总计,i是scanf返回值
float price,sum,in; //商品单价,金额总计,实收金额
printf("----------------欢迎使用数字购物清单------------------\n");
do{
printf("请输入商品名称:\n");
scanf("%s",&goods);
printf("请输入商品价格:\n");
scanf("%4.2f",&price);
printf("请输入商品数量:\n"); //并不是这里的问题,抬头看看看看4楼...
i=scanf("%d",&num);
printf("第三个scanf有效录入%d个",i); //最坑爹在这,scanf 有返回值不是代表录入有效么!
total+=num;
sum+=(price*num);
printf("小计\n数量:%d\t金额:%4.2f\n",total,sum); //输出每种商品的购买数量,金额累计
printf("是否继续录入?\n输入yes继续,no结算\n");
scanf("%s",c);
}while(strcmp(c,"yes")==0); //循环输入
printf("合计\n数量:%d\t金额%4.2f\n",total,sum); //合计
printf("请输入实收金额:\n"); //录入实收,找零,提醒补款
scanf("%4.2f",&in);
printf("应收:%4.2f\t实收:%4.2f\n",total,in);
if(in>total){
printf("找零:%4.2f\n",in-total);
}
else{
printf("对不起,需补款:%4.2f\n",total-in);
}
return 0;
}#include<stdio.h>
int main()
{
char goods[20],c[3]; //商品名,退出标识符
int num,total,i; //商品数量,数量总计,i是scanf返回值
float price,sum,in; //商品单价,金额总计,实收金额
printf("----------------欢迎使用数字购物清单------------------\n");
do{
printf("请输入商品名称:\n");
scanf("%s",goods); //%s格式,去掉&
printf("请输入商品价格:\n");
scanf("%f",&price);
printf("请输入商品数量:\n"); //去掉4.2
i=scanf("%d",&num);
printf("第三个scanf有效录入%d个",i); //最坑爹在这,scanf 有返回值不是代表录入有效么!
total+=num;
sum+=(price*num);
printf("小计\n数量:%d\t金额:%4.2f\n",total,sum); //输出每种商品的购买数量,金额累计
printf("是否继续录入?\n输入yes继续,no结算\n");
scanf("%s",c);
}while(strcmp(c,"yes")==0); //循环输入
printf("合计\n数量:%d\t金额%4.2f\n",total,sum); //合计
printf("请输入实收金额:\n"); //录入实收,找零,提醒补款
scanf("%f",&in); //去掉4.2
printf("应收:%4.2f\t实收:%4.2f\n",total,in);
if(in>total){
printf("找零:%4.2f\n",in-total);
}
else{
printf("对不起,需补款:%4.2f\n",total-in);
}
return 0;
还有错的话就是逻辑问题了...