Написано: 06.12.2022

Поразрядный вывод пятизначного числа.

Задание.

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

Решение 1.

#include <iostream>
using namespace std;
int main()
{
    setlocale (LC_ALL, "RUS");
    cout << "\t\t\tДеление числа на разряды\n\n";
    int a, n, b;
    cout << "Введите пятизначное число: ";
    cin >> a;
    cout << "\n";
    if (a < 0 || a >= 100000) {
        cout<<"Вы ввели неверное число. Число должно быть пятизначным.\n\n";
    } else {
        // 1 цифра = (a/10000)%10 = (12345/10000)%10=1%10=1
        // 2 цифра = (a/1000)%10 = (12345/1000)%10=12%10=2
        // 3 цифра = (a/100)%10 = (12345/100)%10=123%10=3
        // и т.д.
        b = 10000;
        for (int i = 0; i < 5; i++) {
            cout << i+1 << " цифра равна " << (a/b)%10 << "\n"; 
            b /= 10;
        }

        cout << endl;
        return 0;
    }
}

Решение 2, через строку.

#include <iostream>
#include <string>
using namespace std;
int main()
{
    setlocale (LC_ALL, "RUS");
    cout << "\t\t\tДеление числа на разряды\n\n";
    int a, n, k;
    cout << "Введите пятизначное число: ";
    cin >> a;
    cout << "\n";
    if (a < 0 || a >= 100000) {
        cout<<"Вы ввели неверное число. Число должно быть пятизначным.\n\n";
    } else {
        n = s.size();
        k = 5 - n;
        for (int i = 0, j = 0; i < 5; i++) {
            if (i < k) {
                cout << i + 1 << " цифра равна 0\n";
            } else {
                cout << i + 1 << " цифра равна " << s[j] << "\n";
                j++;
            }
        }

        cout << endl;
        return 0;
    }
}