如何在c++中检查一个数是否为4位数?

fzwojiic  于 2022-11-19  发布在  其他
关注(0)|答案(8)|浏览(408)

如何在C++中检查一个数字是否是4位数?我试过这个代码:

bool check4(int number)
{
     if ((number % 10) && !(number / 10000) && (number / 1000) && (number / 100) && (number / 10))
         return true;
     else
         return false;
}

它只适用于不包含0的数字,如1234、5678等。
有人能告诉我怎么修吗?
谢谢你!

nwlls2ji

nwlls2ji1#

那这个呢:

return (number > 999) && (number < 10000);
gj3fmq9x

gj3fmq9x2#

你可以只检查number > 999number <= 9999,而不用做所有的小数操作。

bool check4(int number)
{
     return number > 999 && number <= 9999;
}
fgw7neuy

fgw7neuy3#

有两种简单的方法:

  • 检查范围(数值〉999且数值〈10000)
  • 取十进制对数并检查整数部分等于3
wnvonmuf

wnvonmuf4#

您可以使用math.log

return log10(number) == 3;
axkjgtzd

axkjgtzd5#

您可以申请4位数号码--〉

return number > 999 && number <= 9999

注意:您也可以申请任意长度(n)的数字

int length=0,num;

    while((num= num/10) >0)
    {
    length++;
    if(length == n && num==0)                  //n is the expected length of number.
    {
    std::cout<<"number is of  digit";
    break;
    }
33qvvth1

33qvvth16#

#include "iostream"
using namespace std;

void main()
{
    enteragain:
    cout << "-----Enter a Number----\n";
    int number;
    char choice;
    cin >> number;
    if (number> 999 && number <10000 ) {
        cout << "\nNumber is four digit\n";
        cout << "Would You like enter another number? press y for yes or n for no = ";
        cin >> choice;
        if (choice == 'y')
        {
            goto enteragain;
        }
        if (choice == 'n')
        {
            goto nowexit;
        }

    }
    else
    {
        cout << "Not a four digit number \n";
        goto enteragain;
    }
    nowexit:

    system("pause");
}
zzoitvuj

zzoitvuj7#

#include <iostream>
using namespace std;

int main() {
    int year;
    cout << "Enter Year: ";
    cin >> year;
    if (year < 1000 || year > 9999) {
        cout << "Invalid entry. \n";
    }
}
f87krz0w

f87krz0w8#

如果你真的想通过小数点操作来完成,试试这个

if((n/1000)>0&&(n/10000)==0)
    {
    //four digit number
    }

在您的代码中,(number % 10)导致了该问题。

相关问题