破损的烤箱键盘
Broken Oven Keypad
本文关键字:键盘 更新时间:2023-10-16
键盘损坏,因此输入数字1、4和7不起作用。反过来,计算机输出下一个最低和下一个最高数字,其中1、4和7不是数字。
我的目标是使用布尔功能查看数字和输出TRUE,然后输出下一个最高数字和下一个最低数字。我很确定我要做的大部分需要做的事情,但这并没有解决。我输入了数字444,结果是443和445。谢谢您的帮助。
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
bool containDigit(int number, int digit);
int main()
{
int number, digit, lowNum, highNum;
cout<<"Enter a number between 1 and 999 for the oven temperature: ";
cin>>number;
//1st digit
digit = number / 100;
containDigit(number, digit);
if (containDigit(number, digit) == true)
{
number = number - 100;
}
//2nd digit
digit = (number / 10) % 10;
containDigit(number, digit);
if (containDigit(number, digit) == true)
{
number = number - 10;
}
//3rd Digit
digit = number % 10;
containDigit(number, digit);
if (containDigit(number, digit) == true)
{
number = number - 1;
}
cout<<number<<endl;
getche();
return 0;
}
bool containDigit(int number, int digit)
{
if ((digit == 1) || (digit == 4) || (digit == 7))
{
return true;
}
else
{
return 0;
}
}
错误在containDigit函数中。尝试以下操作:
bool containDigit(int number, int digit) {
if(digit == 1 || digit == 4 || digit == 7) return true;
return false;
}
您必须使用==
而不是=
。另外,您实际上不需要number
参数。
也可以进行几个优化。请自己看一下(这是您的作业),然后考虑重复的代码。
由于这看起来像功课,我会避免为您做并给您这些提示:
看来您对"第一位数"是什么并不清楚。是左侧(数百)还是右(一个)的第一个?查看您的代码,并告诉自己它如何回答我的问题。
lowNum
或highNum
是否有可能使用代码与number
具有多个数字不同?如何?lowNum
和highNum
在哪里更改?
另外,要扩展@Al Kepp所说的话:当您具有这样的函数时,请尝试使用一些非常简单的输入来测试它,而不是直接假设它有效。这称为(或类似于)"单位测试",这决定您将程序分为简单,独立的单位并分别测试。一个简单的呼叫,例如 containDigit(999, 4)
返回 true
会响应警告铃。
谈到警告,总是,始终与您所能忍受的尽可能多的一起编译。(例如gcc
的-Wall
)这样做可能已经警告您您根本不使用number
的参数containDigit
。
您的函数包含两个问题:
- 它不需要接收变量"数字",因为它不使用它
- 您想与==非= 进行比较
相关文章:
- 物理键盘上的触发器按键
- 如何使用C/C++在MacOSX中获得键盘布局
- 视窗键盘输入 c++
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- C ++异步键盘输入(标准方式)
- 键盘不起作用 - Arduino Uno - 与变量有关的多个错误
- 如何在 WindowProc 处理程序中区分箭头键和数字键盘?
- 覆盖应用程序的低级别键盘挂钩问题
- C++键盘挂钩 CTRL 键卡住
- 在 OpenGL 中使用键盘移动 3D 形状,C++
- SFML 键盘条件或
- 找不到键盘,即使我包括键盘。
- 在C++中隐藏键盘记录器的控制台窗口
- 盖奇不读取键盘输入
- 使用Boost async_read和POSIX::stream_descriptor从键盘读取
- 在 Linux 上C++:在作为 systemd 服务运行时侦听键盘输入
- 是否可以将键盘输入绑定到 Win32 中的单个应用程序?
- SDL2 无法捕获控制台键盘事件?
- 使用 Windows API c++ 的键盘输入
- GTKMM:如何将键盘事件附加到绘图区域?