首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有得到数字基检查器的适当解决方案

没有得到数字基检查器的适当解决方案
EN

Stack Overflow用户
提问于 2014-09-15 03:56:10
回答 1查看 50关注 0票数 1

用户从2-10输入基,然后输入他们想要在基数10中转换的数字。但是,首先,程序检查数字是否在他们输入的基中。

代码:

代码语言:javascript
复制
//ERROR CHECKING FOR DIGITS/ GETTING PROPER DIGITS INPUT
int digit = 0;
bool checker;
cout << "enter number for conversion: "; //Prompt user for base data
cin >> num;

if (num < base){
    checker = true;
}
else{
    checker = false;

}

//insert each number of digitN inside the array & check if each value is part of the base
while (checker == false){
    int len = (std::to_string(num)).size(); //attain array size
    for (int i = 0; i <= (len - 1); i++)
    {
        digit = num % 10;
        if (digit >= base)
        {
            checker = false;
            i = len;
        }
        else
        {
            checker = true;
        }
        num = (num / 10);

    }
    cout << "enter PROPER number for conversion: "; //Prompt user for base data
    cin >> num;

}

我似乎在for循环中得到了一个错误。谁能帮我弄清楚逻辑吗。一旦程序接受了一个数字,它就会检查该数字的每一个数字,看看它是否在基中。如果是这样,则检查器将为真,否则为false。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-15 04:06:33

这是一个简单的检查。

代码语言:javascript
复制
bool is_valid;
unsigned int digit;
unsigned int x = ( num >= 0 ? num : -num );

do
{
    digit = x % 10;
} while ( ( is_valid = digit < base ) && ( x /= 10 ) );

您可以使用标准函数abs代替三元运算符。

我使用的不是变量名称检查器,而是名称is_valid。你要用什么名字并不重要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25840614

复制
相关文章

相似问题

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