Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Zad.9.cpp : Defines the entry point for the console application.
- //Dekompozycja liczb.
- #include "stdafx.h"
- #include "../../../../std_lib_facilities.h"
- struct Numbers
- {
- int thousands;
- int hundreds;
- int dozens;
- int unity;
- Numbers()
- :thousands(0),hundreds(0),
- dozens(0),unity(0){}
- void set_vector(char number);
- void set_number(vector<char> num);
- int value();
- };
- Numbers n;
- vector<char> numbers;
- int main()
- {
- cout << "Podaj liczbe z zakresu 1-9999 i zakoncz srednikiem" << endl;
- char number = '0';
- n.set_vector(number);
- n.set_number(numbers);
- int num = n.value();
- cout << "\nDekompozycja liczby: " << num
- << "\nLiczba tysiecy: " << n.thousands
- << "\nLiczba setek: " << n.hundreds
- << "\nLiczba dziesiatek: " << n.dozens
- << "\nLiczba jednosci: " << n.unity << endl;
- return 0;
- }
- void Numbers::set_vector(char number)
- {
- while (cin >> number && number != ';') {
- if (number > '0' && number < '9')
- numbers.push_back(number);
- else
- cerr << "Blad '" << number << "' nie jest liczba" << endl;
- }
- }
- void Numbers::set_number(vector<char> num)
- {
- switch (num.size()) {
- case 1:
- n.unity = num.at(0) - '0';
- break;
- case 2:
- n.dozens = num.at(0) - '0';
- n.unity = num.at(1) - '0';
- break;
- case 3:
- n.hundreds = num.at(0) - '0';
- n.dozens = num.at(1) - '0';
- n.unity = num.at(2) - '0';
- break;
- case 4:
- n.thousands = num.at(0) - '0';
- n.hundreds = num.at(1) - '0';
- n.dozens = num.at(2) - '0';
- n.unity = num.at(3) - '0';
- break;
- default:
- cerr << "Blad, maksymalna liczba to 9999" << endl;
- abort();
- }
- }
- int Numbers::value()
- {
- int v = 0;
- v = n.thousands * 1000 + n.hundreds * 100 + n.dozens * 10 + n.unity;
- return v;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement