1. 程式人生 > 其它 >(C++)讀取一個輸入的int型十進位制數字的位數,並正序輸出每個位上的值(不同數位的值用1個空格字元間隔)

(C++)讀取一個輸入的int型十進位制數字的位數,並正序輸出每個位上的值(不同數位的值用1個空格字元間隔)

 1 #include <iostream>
 2 #include <cmath>
 3 #define IN 
 4 using namespace std;
 5 int ReadDigitsOfNumber(IN const int number,IN const int decimalSytem);
 6 int DisplayNumberByDigits(IN const int number,IN const int digits,IN const int deciamlSystem);
 7 int main()
 8 {
 9     int number;
10 int digits; 11 int decimalSystem = 10; 12 13 cout<<"請輸入一個十進位制的數字:"; 14 cin>>number; 15 digits = ReadDigitsOfNumber(number,decimalSystem); 16 cout<<number<<"是一個"<<digits<<"位數字!"<<endl; 17 DisplayNumberByDigits(number,digits,decimalSystem);
18 system("pause"); 19 return 0; 20 } 21 int ReadDigitsOfNumber(IN const int number,IN const int decimalSystem) 22 { 23 int conditionFlag; 24 int digitsCount = 0; 25 int computeDigitsWorkingNumber = number; 26 27 do 28 { 29 computeDigitsWorkingNumber = computeDigitsWorkingNumber/decimalSystem;
30 conditionFlag = computeDigitsWorkingNumber; 31 digitsCount = digitsCount + 1; 32 }while(conditionFlag != 0); 33 return digitsCount; 34 } 35 int DisplayNumberByDigits(IN const int number,IN const int digits,IN const int decimalSystem) 36 { 37 cout<<"該數字從左至右位置上的數字依次為:"; 38 int displayWorkingNumber = number; 39 int displayWorkingDigits = digits; 40 for(int displayWorkingCount = 0;displayWorkingCount<digits;displayWorkingCount++) 41 { 42 cout<<displayWorkingNumber/(int)pow((float)decimalSystem,displayWorkingDigits - 1); 43 cout<<" "; 44 displayWorkingNumber = displayWorkingNumber%(int)pow((float)decimalSystem,displayWorkingDigits - 1); 45 displayWorkingDigits = displayWorkingDigits - 1; 46 } 47 cout<<endl; 48 return 0; 49 }

 執行結果