1. Napisz program, który wczyta liczbę całkowitą większą od zera i wypiszę liczbę wystąpień poszczególnych cyfr w tej liczbie.
2. Napisz program, który będzie wczytywał z klawiatury liczby całkowite dodatnie do napotkania zera i wypisywał liczbę wystąpień poszczególnych cyfr we wszystkich liczbach łącznie.
Odpowiedź:
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
int n;
cout << "Podaj liczbe" << endl;
cin >> n;
while (n <= 0)
{
cout << "Podaj liczbe wieksza od zera " << endl;
cin >> n;
}
int numberLength = 0;
int zero = 0;
int one = 0;
int two = 0;
int three = 0;
int four = 0;
int five = 0;
int six = 0;
int seven = 0;
int eight = 0;
int nine = 0;
while (n != 0)
{
numberLength++;
if (n % 10 == 0)
{
zero++;
}
if (n % 10 == 1)
{
one++;
}
if (n % 10 == 2)
{
two++;
}
if (n % 10 == 3)
{
three++;
}
if (n % 10 == 4)
{
four++;
}
if (n % 10 == 5)
{
five++;
}
if (n % 10 == 6)
{
six++;
}
if (n % 10 == 7)
{
seven++;
}
if (n % 10 == 8)
{
eight++;
}
if (n % 10 == 9)
{
nine++;
}
n /= 10;
}
cout << "Ilosc zer " << zero << endl;
cout << "Ilosc jedynek " << one << endl;
cout << "Ilosc dwojek " << two << endl;
cout << "Ilosc trojek " << three << endl;
cout << "Ilosc czworek " << four << endl;
cout << "Ilosc piatek " << five << endl;
cout << "Ilosc szostek " << six << endl;
cout << "Ilosc siodemek " << seven << endl;
cout << "Ilosc osemek " << eight << endl;
cout << "Ilosc dziewiatek " << nine << endl;
return 0;
}
Wyjaśnienie:
Tylko pierwsze zadanie. Bez map jest to bardzo nieefektywne. Plus zbyt zaawansowane dużo zadanie jak na 5 punktów.
Jak chcesz, to możesz te drugie zadanie zrobić podobnym sposobem, ale moim zdaniem bez map nie ma sensu nawet podchodzić do tego