2017-05-11 64 views
-2

如何檢查C++中的數字是否是4位數? 我曾嘗試這樣的代碼:如何檢查一個數字是否在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等

有人可以告訴我怎麼解決?

謝謝!

+10

> = 1000 && <= 9999? –

+2

真的嗎?這個問題有2個upvotes? –

+0

不是問題,而是括號過多。 –

回答

6

您可以檢查number > 999number <= 9999,而不是執行所有的小數運算。

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

對不起,但這不是一般情況。 –

+0

OP總是期待更好的答案。 –

+1

@ShivamSharma你認爲你的循環更好的答案? – Slava

3

有2點簡單的方法:

  • 檢查範圍(數> 999和號碼< 10000)
  • 以十進制數,並檢查組成部分等於3
10

這個怎麼樣:

return (number > 999 && number < 10000); 
-1

如果你真的想用十進制操作去做,試試這個

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

在你的代碼(number % 10)引起的問題。

+0

爲什麼還要把分工帶進去呢?你做了4步而不是2。 – NathanOliver

1

你可以申請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; 
    } 
+0

你的循環在長度== n時停止,並且將該數字報告爲有n位,即使它有更多。 –

1

可以使用math.log

return log10(number) == 3; 
0
#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"); 
} 
+0

很好用語言來描述你的答案以支持你在這裏的代碼 – gdbj

+0

感謝兄弟請upvote我的回答 –

相關問題