(C++)讀取一個輸入的int型十進位制數字的位數,並正序輸出每個位上的值(不同數位的值用1個空格字元間隔)
阿新 • • 發佈:2022-04-21
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 }
執行結果