315
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
nnumere 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;
}
Comentarii