Я делаю калькулятор доставки, если посылка весит более 50 фунтов, не удалось отправить посылку. Я хочу, чтобы заявление появлялось только в том случае, если посылка весит более 50 фунтов, но она появляется несмотря ни на что.
Я пробовал это как оператор else, оператор if и оператор if else.
main(){
double distance, weight, weightCharges, shippingCharge, distanceCharge, unableToShip;
printf ("Enter the weight of the package:\n");
scanf ("%lf", &weight);
printf ("Enter the distance your package needs to go: \n");
scanf ("%lf", &distance);
if (weight <= 10)
weightCharges = weight * 3.00;
else
if (weight <= 50)
weightCharges = weight * 5.00;
else (weight > 50);
weightCharges= 0;
if (distance > 1000)
distanceCharge = weightCharges + 10;
shippingCharge = weightCharges + distanceCharge;
unableToShip = weight > 50;
printf ("Your total cost is: %.2lf \n", shippingCharge);
printf ("We're unable to ship your package \n", unableToShip);
}
Я ожидаю, что второй printf появится только в том случае, если мы не сможем отправить их пакет, но он появится несмотря ни на что.
unableToShip
типомbool
, а не типомdouble
, поскольку единственные значения, которые вы хотите выразить с его помощью, - этоtrue
илиfalse
. - person Jeremy Friesner   schedule 11.02.2019else (weight > 50)
? Что-то вроде выражения без эффекта? ВашweightCharges
всегда будет 0. - person Gerhardh   schedule 11.02.2019