关于超市计费代码的问题
int main(int argc, char *argv[]) {int d;
float a,b=0;
printf("航歌超市计费终极完美版\n");
for(;d==1;)
{
printf("请输入物品的单价:");
scanf("%f",&a);
b=b+a;
printf("物品总价为:%.1f\n",b);
for(d=3;d!=0&&d!=1;)
{
printf("若要继续输入商品单价请按1,结束请按0\n");
scanf("%d",&d);
if(d!=1&&d!=0)
printf("请输入正确的指令\n");
}
if(d==0)
break;
}
return 0;
}
这个是可以运行的,不过如果第2个for语句的d=3删去的话第2个for语句无法运行,但为什么第一个for语句没对d进行赋值却可以运行
在这个程序的运行上,我发现在"若要继续输入商品单价请按1,结束请按0”这个语句时一旦输入的不是整数就会出错,但当我将d的数据类型改为float时就连第一个for语句都无法运行
以上,求解