c - 如何在退出 C 中的 Do While 循环后使用在 Do While 循环中输入的值
问题描述
我是 C 编程的新手。我很想知道是否可以在 do while 循环中输入一个值并在循环外使用它。尝试对其进行编码几次,但它对我不起作用。如果有人可以在这件事上帮助我,将不胜感激。
#include <stdio.h>
int main() {
float salary, hours, bonus;
float rateperhour = 2.50;
do {
printf("Please enter hours worked: ");
scanf("%f", &hours);
salary = hours * rateperhour;
if (salary > 500 && salary < 1000) {
printf("Range: 5000-10000\n");
} else {
hours = 0;
}
printf("Salary: %.2f\n", salary);
} while (hours > 0);
for (bonus = 10; bonus <= 15; ++bonus) {
salary = hours * bonus;
}
printf("Salary: %d", salary);
}
解决方案
“在C中退出循环后如何使用循环中输入的值?
do while
do while
”
如果赋值给的对象是在循环外声明的,那么在循环外访问该对象就没有问题。
如果对象仅在循环内相反声明,则它在循环内只有其生命周期和范围。
但这不是您的代码的问题。
“尝试了几次编码,但它不适合我。 ”
这不是它不打印预期输出的原因。printf
除了上次调用错误的格式说明符之外:
printf("Salary: %d", salary);
代替
printf("Salary: %.0f", salary);
或者
printf("Salary: %d", (int) salary);
因为salary
是类型float
,
正如您在此处看到的那样,您的代码在语法上没有任何问题,因此您可以查看算法背后的逻辑。
推荐阅读
- python - 将熊猫数据框转换为谷歌电子表格
- python - 如果既不是按位运算也不是打印 chevron,>> 会做什么?
- java - 如何正确管理 OutputStream 以避免资源泄漏错误
- python - 空路径与这些都不匹配 - Django 2 By Example
- azure-active-directory - AADSTS50011:指定的回复 URL 与配置的不匹配
- angular - 在 Angular 4 中使用移动手势(触摸)
- knockout.js - Slickgrid + DataView - 编辑单元格嗨
- tsql - 显示错误结果 tsql 的两列的总和
- node.js - 从另一个 lambda 函数调用的 AWS lambda 函数的响应始终为空
- python - Python selenium - 如何在多个页面上重复选择按钮 - 元素不可见