Cerință
Se dă o mulţime nevidă A
cu n
elemente numere reale. Să se afișeze elementele mulțimilor A ∩ N
, A ∩ Z
, A ∩ Q
și A ∩ (R-Q)
. Numerele raţionale pot fi periodice sau neperiodice. Pentru numerele iraţionale sunt date numai primele zecimale (maxim 5
), urmate de 3
puncte.
Date de intrare
Programul citește de la tastatură numărul n
, apoi n
numere reale.
Date de ieșire
Programul vor afișa pe câte un rând elementele mulțimilor A ∩ N
, A ∩ Z
, A ∩ Q
și A ∩ (R-Q)
, separate prin câte un spațiu.
Restricții și precizări
1 ≤ n ≤ 50
- cele
n
numere citite vor fi mai mici decât1.000.000.000
și mai mari decât-1.000.000.000
- dacă una dintre mulțimile cerute este vidă se va afișa corespunzător doar mesajul
Multime vida
Exemplul 1
Intrare
10 3.14... 1.41... 10000 -3.8(7) 1224 -12 324 3.27 1 6.78912345
Ieșire
10000 1224 324 1 10000 1224 -12 324 1 10000 -3.8(7) 1224 -12 324 3.27 1 6.78912345 3.14... 1.41...
Exemplul 2
Intrare
10 3.14... 1.41... 10000.1 -3.8(7) 1224.5 -12 324.432 3.27 1.41 6.78912345
Ieșire
Multime vida -12 10000.1 -3.8(7) 1224.5 -12 324.432 3.27 1.41 6.78912345 3.14... 1.41...
#include <bits/stdc++.h> using namespace std; int n; char m[101][101]; bool N(char s[]) { int i = 0; while(s[i]) { if(s[i] == '.') return false; if(s[i] == '-') return false; i++; } return true; } bool Z(char s[]) { int i = 0; while(s[i]) { if(s[i] == '.') return false; i++; } return true; } bool Q(char s[]) { int i = 0; while(s[i]) { if(i > 1 && (s[i] == '.' && s[i-1] == '.')) return false; i++; } return true; } bool R(char s[]) { int i = 0; while(s[i]) { if(i > 1 && s[i] == '.' && s[i-1] == '.') return true; i++; } return false; } int main(){ cin >> n; for(int i = 1; i <= n; ++i) cin >> m[i]; bool ok = false; for(int i = 1; i <= n; ++i) if(N(m[i])) ok = true, cout << m[i] << ' '; if(!ok) cout << "Multime vida"; cout << "\n"; ok = false; for(int i = 1; i <= n; ++i) if(Z(m[i])) ok = true, cout << m[i] << ' '; if(!ok) cout << "Multime vida"; cout << "\n"; ok = false; for(int i = 1; i <= n; ++i) if(Q(m[i])) ok = true, cout << m[i] << ' '; if(!ok) cout << "Multime vida"; cout << "\n"; ok = false; for(int i = 1; i <= n; ++i) if(R(m[i])) ok = true, cout << m[i] << ' '; if(!ok) cout << "Multime vida"; return 0; }