Jasiu wymyślił pewien specyficzny, informatyczny plecak. Polega on na tym, że w swoim plecaku zainstalował kawałek pamięci RAM i wrzucenie czegoś do niego traktuje jak zapisanie wartości w tej pamięci.
I tak Jaś wrzucił do plecaka pewną liczbę rzeczywistą. Teraz w zależności od okoliczności, kiedy ktoś go spyta co ma w plecaku, odpowiada w zależności od tego, co kto chce usłyszeć ;) Jeśli ktoś go zapyta np. o liczbę całkowitą, odpowiada, jakby w plecaku miał zapisaną liczbę całkowitą itp.
Wejście
Pierwsza linia wejścia składa się z jednej liczby rzeczywistej x oznaczającej liczbę, którą Jaś wrzuca do plecaka.
Następna linia zawiera jedną liczbę całkowitą n (1<= n <= 1000) oznaczającą liczbę osób, które odpytują Jasia.
Kolejne n linii zawiera opis typów, o które pytają kolejne osoby. Mogą to być: int, long, float, double (uwaga - napis "long" odpowiada typowi "long long").
Wyjście
Dla każdego zapytania należy wypisać odpowiednią wartość.
Przykład
Wejście:
3.14
4
int
long
float
double
Wyjście:
1078523331
1078523331
3.140000
0.000000
Moje rozwiązanie coś kuleje, bo nie chce od razu wyświetlać, wyniku przy 4 powt. a przy 1 wyświetla, będę wdzięczny za każdą pomoc.
#include <cstdlib>
#include <iostream>
using namespace std;
union u
{
int a;
long long b;
float c;
double d;
};
int main()
{
u zm;
int n=0;
char typ[7];
cin>>zm.c;
cin>>n;
for (int i=0; i<n; i++)
cin>>typ;
if(strcmp(typ,"int")==0)
cout<<zm.a<<endl;
else if(strcmp(typ,"long")==0)
cout<<zm.b<<endl;
else if(strcmp(typ,"float")==0)
cout<<zm.c<<endl;
else if(strcmp(typ,"double")==0)
cout<<zm.d<<endl;
return 0;
}