Phoenix_x

Untitled

Mar 6th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.69 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream> //cin cout
  3.  
  4. using namespace std;
  5.  
  6. const int arraySize = 11; //резервира се място за до 11 цифрено число
  7. short* numberArray = new short[arraySize]; //декларация на масива, в който се държат цифрите
  8. short counter = 0; //необходимо при принтирането на масива
  9. short helper; //необходимо при принтирането на масива
  10.  
  11. void printArray(short index)
  12. {
  13.     if (index < 0) //не може индекът да е -1, -2, -3...
  14.         return; //край на изпълнението на функцията
  15.     cout << "a[" << index - helper << "]= " << numberArray[index] << endl; //принтиране на индекс (от 0) и стойност
  16.     helper -= 2;//необходимо при принтирането на масива
  17.     printArray(--index); //рекурсия, индексът намален с едно (защото отзад напред)
  18.  
  19. }
  20.  
  21. void division(int number, int br) //взима последната цифра на числото(number) br - индекс на масива
  22. //Записва последната цифра на числото в масив
  23. {
  24.     if (number == 0)
  25.     {
  26.         return; //край на функцията
  27.     }
  28.     int lastDigit = number % 10; //последната цифра на числото
  29.     numberArray[br] = lastDigit; //записване на последната цифра в масива
  30.     int numberWithoutLastDigit = number / 10; //за да се отървем от вече записаната последна цифра
  31.  
  32.     counter++;//необходимо при принтирането на масива
  33.  
  34.     division(numberWithoutLastDigit, ++br); //рекурсия, индекът (br) увеличен с едно, числото без последната цифра
  35.  
  36. }
  37.  
  38. int main()
  39. {
  40.     int br = 0; //служи за индекс на масива
  41.     int number; //числото въведено от потребителя
  42.     //cikyl dokato e vqrno
  43.     while (1) //безкраен цикъл
  44.     {
  45.         cout << "vavedi estestveno chislo " << "\n";
  46.         cin >> number;
  47.  
  48.         if (number <= 0) //ако числото е невалидно
  49.         {
  50.             cout << "Vavedete drugo chislo , s nula nqma da ti dam " << "\n";
  51.         }
  52.         else
  53.             break; // ako chisloto e po - golqmo ot nula da izleze ot cikyla
  54.     }
  55.  
  56.     division(number, br); //делене, записване на цифрите от числото в масив
  57.     helper = counter - 1; //необходимо при принтирането на масива
  58.     printArray(counter - 1); //принтиране на масива
  59.     system("pause");
  60. }
Advertisement
Add Comment
Please, Sign In to add comment