- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我似乎无法停留在 while 循环中。我输入 ID 代码和第一次购买或出售的号码,它就会退出,尽管我要求只有在代码中输入 -1 时它才会退出。这里有一些简单的东西需要修正还是太广泛了?
#include <stdio.h>
int main () {
int inv1, inv2, inv3, inv4, amount, code;
printf ("Beer brand IDs \n");
printf ("1. Piels \n");
printf ("2. Coors \n");
printf ("3. Bud \n");
printf ("4. Iron City \n");
printf ("Inventory at beginning of week \n");
printf ("1. Piels: ");
scanf ("%d", &inv1);
printf ("2. Coors: ");
scanf ("%d", &inv2);
printf ("3. Bud: ");
scanf ("%d", &inv3);
printf ("4. Iron City: ");
scanf ("%d", &inv4);
while (code != -1) {
printf ("ID: ");
scanf ("%d", &code);
printf ("amount requested or subtracted: ");
scanf ("%d", &amount);
if (code == 1) {
inv1 = inv1 + amount;
}
else if (code == 2) {
inv2 = inv2 + amount;
}
else if (code == 3) {
inv3 = inv3 + amount;
}
else if (code == 4) {
inv4 = inv4 + amount;
}
else (code == -1); {
break;
}
printf ("End of week for Piels: %d", inv1);
printf ("End of week for Coors: %d", inv2);
printf ("End of week for Bud: %d", inv3);
printf ("End of week for Iron City: %d", inv4);
}
return (0);
}
最佳答案
您的代码存在许多技术逻辑问题。首先,进入循环时使用未初始化code
。您的编译器应该就该问题向您发出警告。确保每次编译时都启用警告(例如-Wall -Wextra
),并且不接受编译时带有警告的代码。 (您还可以添加 -pedantic
以查看其他警告)
你有一个乱码else
。 else (code == -1);
不正确。看来您打算 else { code = 1;休息; }
。请注意,根本不需要 code
变量。只需使用 while (1)
或 for (;;)
进行循环,直到break
跳出循环。
您的提示显示减去
,但您正在代码中添加(例如inv4 = inv4 + amount;
)。只需使用 -=
运算符即可实际减去每个 ID
的 amount
。
始终,始终检查每次调用 scanf
的返回
。这是您可以验证您从用户那里收到实际值并且不会尝试从该点开始处理垃圾的唯一方法(它还可以防止无限循环,如果您的用户输入的不是小数)
最后,您的“End of week”
printf
语句应该外部循环,而不是内部。下面是一个简短的示例,说明您对代码的意图:
#include <stdio.h>
int main (void) {
int inv1, inv2, inv3, inv4;
inv1 = inv2 = inv3 = inv4 = 0; /* initialize values */
printf ("Beer brand IDs \n");
printf ("1. Piels\n2. Coors\n3. Bud\n4. Iron City\n\n");
printf ("Inventory at beginning of week\n");
printf ("1. Piels : ");
if (scanf ("%d", &inv1) != 1) {
fprintf (stderr, "error: invalid input.\n");
return 1;
}
printf ("2. Coors : ");
if (scanf ("%d", &inv2) != 1) {
fprintf (stderr, "error: invalid input.\n");
return 1;
}
printf ("3. Bud : ");
if (scanf ("%d", &inv3) != 1) {
fprintf (stderr, "error: invalid input.\n");
return 1;
}
printf ("4. Iron City: ");
if (scanf ("%d", &inv4) != 1) {
fprintf (stderr, "error: invalid input.\n");
return 1;
}
while (1) {
int amount = 0, code = 0;
printf ("ID ('q' to quit): ");
if (scanf ("%d", &code) != 1) break;
printf ("amount requested or subtracted: ");
if (scanf ("%d", &amount) != 1) break;
if (code == 1)
inv1 -= amount;
else if (code == 2)
inv2 -= amount;
else if (code == 3)
inv3 -= amount;
else if (code == 4)
inv4 -= amount;
else
fprintf (stderr, "warning: ID out of range.\n");
}
printf ("\nEnd of week for Piels : %d\n", inv1);
printf ("End of week for Coors : %d\n", inv2);
printf ("End of week for Bud : %d\n", inv3);
printf ("End of week for Iron City : %d\n", inv4);
return (0);
}
示例使用/输出
$ ./bin/rfmt
Beer brand IDs
1. Piels
2. Coors
3. Bud
4. Iron City
Inventory at beginning of week
1. Piels : 10
2. Coors : 10
3. Bud : 10
4. Iron City: 10
ID ('q' to quit): 1
amount requested or subtracted: 2
ID ('q' to quit): 2
amount requested or subtracted: 3
ID ('q' to quit): 3
amount requested or subtracted: 4
ID ('q' to quit): 4
amount requested or subtracted: 5
ID ('q' to quit): q
End of week for Piels : 8
End of week for Coors : 7
End of week for Bud : 6
End of week for Iron City : 5
仔细检查一下,如果您还有其他问题,请告诉我。
关于库存C程序,啤酒库存的while循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39921536/
我是 PrestaShop 的新手。我遇到了一个问题,无法在 PrestaShop 从库存中减去商品的代码中找到。 当客户创建订单并选择付款时,商品将从库存中减去,但如果客户不付款并返回,则商品不会退
是否有最好的方法在关系数据库中存储诸如玩家背包之类的数据? 假设我想将玩家背包存储在数据库中。 表“eq”的数据库模型如下所示: 玩家 ID |槽 |商品编号 |金额 现在假设我在数据库中有这一行:
有没有一种方法可以在不使用 [all:vars] 的情况下在组之间继承变量 例子: [GROUP_A] server-A1 [GROUP_A:vars] vpc_cidr="192.10.0.0/21
我的 WooCommerce 插件遇到技术问题,但似乎无法找到答案。我得到了一个可变产品,有两个不同的研讨会时间。举一个简单的例子: 产品:事件当天门票 研讨会 1:红色 |蓝色|绿色 研讨会 2:红
我正在制作一个需要访问用户的 Steam 库存的网站。我找到了一个用于获取 Team Fortress 2 库存、Dota 2、CS:S、CS:GO 和 Portal 2 的 API。但我没有找到任何
我正在建立一个 woocommerce 网上商店。 这是一家手机壳网店,客户想在 woocommerce 后台保留库存,只有一个问题: 它们有不同的型号,例如 iPhone 4 和 iPhone 5。
我在 CodeBlocks (Windows 7) 中使用 GTK,并尝试创建 gtk_button_new_from_stock 所以我使用了以下代码: #include #include in
我有一个名为“条目”的表,我在其中保存每日销售和购买交易/条目。 “条目”表如下所示: ---条目表--- EntryDate EntryType Item Qty Rate
假设我有以下两条记录; tran_id item_id qty_in qty_out price 1 1 15
当我点击元素栏中的元素时,它什么都不做,我可以将它拖到任何我想要的地方。然后我重新打开库存,元素又回来了。我希望单击该项目(在本例中为通知项目)以切换通知 boolean 值并关闭库存。请帮忙。这可能
(我使用的是 Java,因此添加了“Java”标签,以防它影响任何答案,但有些人可能会认为该标签是不必要的。) 考虑以下因素: 我有一个阳台/阳台可以进行图形规划。作为最终计划的一部分,我需要列出 b
我有 2 个表 Tblinkreceiving 和 Tblinkdelivery。我想显示每个 inkcode 的库存余额。我尝试了下面的 sql 连接查询,但当我交叉检查手动计算时,许多 inkco
所以在很大程度上我明白我做错了什么,问题是我不知道如何解决它。 目标:这是一个必须包含可操作的菜单和库存管理功能的商店管理系统。为此,我使用数组来添加商店的商品、它们的描述和它们的数量。所有数组都部分
我发现设置 pg_hba.conf 文件非常困难。这是浪费我时间的常见情况。我需要做什么? 首先,在 Amazon、Digital Ocean 或我自己的硬件上安装新安装的 Linux 发行版的虚拟机
我正在尝试修改旨在与 HTML5 和 Javascript 一起使用的库存列表 Dynagrid 演示,它最初设计用于每次订阅订阅一个项目。 在我的例子中,我已将此演示连接到我的 lightstrea
元素以件和盒子的形式出现。 例如假设, 我购买了 100 片(片剂)medicineX。 我购买了一盒,其中包含50 medicineY。 现在元素仅按件分配。 意味着 MedicineX 将根据他们
我正在尝试使用 Terraform 中的 local_file 函数创建 Ansible 库存文件(我愿意接受以不同方式执行此操作的建议) 模块“vm”配置: resource "azurerm_li
我正在尝试使用 Terraform 中的 local_file 函数创建 Ansible 库存文件(我愿意接受以不同方式执行此操作的建议) 模块“vm”配置: resource "azurerm_li
我想知道是否有更有效/更干净的方法来执行以下操作。假设我有一个包含 2 列的数据框,百分比(基于之前的价格)和操作,玩/买 (1) 或不玩/卖 (-1)。它基本上与股票有关。 为简单起见,请考虑示例
不确定如何表达,但我正在创建一个音乐应用程序,并且我有一个流派选项卡按钮,该按钮将流派列为 UICollectionView 中的单元格。 然后用户选择一个流派,比如“Hip-Hop”,然后会显示相应
我是一名优秀的程序员,十分优秀!