Разбиение 5-значного числа на отдельные цифры

Нужно написать программу,которая вводит число из пяти цифр, разделяет число на
отдельные цифры и печатает их отдельно друг от друга с тремя пробелами между ними.

#include <iostream>
#include <clocale>
#include <sstream>
#include <cstdlib>

using namespace std;

int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "");
    int number; 
    ostringstream number_str;

    cout << "Введите число из 5 цифр: ";
    cin >> number;
    number_str << number;

    if (number_str.str().length() != 5) {
        cerr << "В введенном числе " << number_str.str().length()
             << " цифр.\n"
             << "Необходимо 5." << endl;
        exit(1);
    }

    // Цифры числа
    int digits[5];
    int buf;

    int num1 = 10, num2 = 1;

    for (int i = 0; i < 5; ++i) {
        digits[i] = number % num1 / num2;
        num1 *= 10;
        num2 *= 10;
    }

    // Вывод цифр
    for (int i = 4; i >= 0; --i) {
        cout << digits[i] << "   ";
    }
    cout << endl;

    return 0;
}
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    setlocale(LC_ALL, "Russian");
   int q,t,a;
  bool z = true;
double d;
    do
      {
      cout << "ВВОД ОПЕРИРУЕМОГО ЧИСЛА" << endl;
      cin >> q;
      system("cls");
      int i =0;
      if(q >9999 && q < 100000)z = false;
      i++;
      }
   while(z == true);

   for(int i=0;i < 5;++i)   // за эталон число 12345
      {
        a = q /10;   // 1234
        t = a ;      // 1234 передал t
        a *= 10 ;    // 12340
        q -= a;      // 12345 - 12340 = 5
        cout << q << "   "; // вывод в кансоль : результатом будет 5  4  3  2  1 
        q = t;   // замыкаем круг
      }
   cout << " ПЛОХО ЧТО ПОЛУЧИЛОСЬ В ОБРАТНОМ ПОРЯДКЕ,"<< endl << 
       "МОЖЕТ КАКТО ВОЗМОЖНО ЧЕРЕЗ ЗАПИСЬ В МАССИВ ПЕРЕВЕРНУТЬ? ТОЛЬКО УЧУСЬ ";
getch();
}

Насколько я понял, это упражнение из книги «Как программировать на C++» (по которой сам сейчас учусь). И упражнение это после первой главы, поэтому предыдущие решения слишком сложны для этого уровня. У меня получилось вот это:

// задание 1.36
// Напишите программу, которая вводит число из пяти цифр, разделяет число на
// отдельные цифры и печатает их отдельно друг от друга с тремя пробелами между
// ними. Например, если пользователь вводит в программу 42339, то должно быть
// напечатано: 4   2   3   3   9.

#include <iostream>
using namespace std;

int main()
{
    setlocale(0, "");

    int a, b, c, e, f, a1, b1, c1, e1;

    cout << "Введите число из пяти цифр ";
    cin >> a;

    b = a % 10000; // 2339
    c = b % 1000; // 339
    e = c % 100; // 39
    f = e % 10; // 9

    a1 = (a - b)/10000;
    b1 = (b - c)/1000;
    c1 = (c - e)/100;
    e1 = (e - f)/10;

    cout << a1 << "   " << b1 << "   " << c1 << "   "
         << e1 << "   " << f << endl;

    system("pause");
    return 0;
}

Вот ещё смешной вариантик решения. Правда это не после прочтения первой главы ))

#include <iostream>

using namespace std;

void print_digits(int num) {
    if (num > 9)
        print_digits(num / 10);
    cout << num % 10 << "   ";
}

int main() {

    setlocale(LC_ALL, "Russian");

    int number;

    cout << "Введите число из пяти цифр: ";
    cin >> number;

    if (number >= 100000 || number < 10000) {
        cout << "В этом числе не пять цифр :-(" << endl;
    }
    else {
        print_digits(number);
        cout << endl;
    }

    system("pause");
    return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.