首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >破损烤箱键盘

破损烤箱键盘
EN

Stack Overflow用户
提问于 2012-10-23 00:21:51
回答 3查看 1.2K关注 0票数 0

键盘坏了,所以输入数字1、4和7不能工作。反过来,计算机输出下一个最低和下一个最高的数字,其中1、4和7都不是数字。

我的目标是检查出数字并使用布尔函数输出true,然后输出下一个最高数和下一个最低数字。我很确定我做了大部分我需要做的事,但它没有成功。我输入了数字444,结果是443,和445。谢谢你的帮助。

代码语言:javascript
复制
 #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;
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-23 00:30:56

因为这看起来像家庭作业,我将不为你做,并给你以下提示:

看上去你不太清楚什么是“第一位数”。是左边的第一个(几百个)还是右边的(一个)?看看您的代码,并告诉自己,它的每一部分将如何回答我的问题。

lowNumhighNum是否有可能在代码中有多个数字与number不同?多么?lowNumhighNum在哪里发生了变化,如何改变?

此外,为了扩展@ Also所说的内容:当您有这样的函数时,尝试使用一些非常简单的输入来测试它,而不是假设它正常工作。这被称为(或类似于)“单元测试”,它要求您将程序划分为简单、独立的单元,并分别对它们进行测试。一个简单的电话,比如containDigit(999, 4)返回true,就会敲响警钟。

说到警告,总是要尽可能多地编译它们。(例如,-Wall for gcc)这样做可能会提醒您,您根本没有在containDigit中使用参数number

票数 0
EN

Stack Overflow用户

发布于 2012-10-23 00:29:14

bug在containDigit函数中。试试这个:

代码语言:javascript
复制
bool containDigit(int number, int digit) {
    if(digit == 1 || digit == 4 || digit == 7) return true;
    return false;
}

您必须使用==而不是=。而且,您实际上不需要number参数。

此外,还可以进行几个优化。请自己看(这是你的家庭作业),并考虑重复的代码。

票数 1
EN

Stack Overflow用户

发布于 2012-10-23 00:40:26

您的函数containDigit有两个问题:

  1. 它不需要接收变量"number“,因为它不使用它
  2. 您想要与== not =比较
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13021918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档