Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- struct Apartament {
- float suprafata;
- int nr_camere;
- char *proprietar;
- };
- struct Hotel {
- int nr_apartamente;
- Apartament *apartamente;
- };
- Apartament citesteApartament(void) {
- Apartament a;
- printf("Introduceti suprafata apartamentului: ");
- scanf("%f", &a.suprafata);
- printf("Introduceti numar camere: ");
- scanf("%d", &a.nr_camere);
- char buffer[20];
- printf("Introduceti nume proprietar: ");
- scanf("%s", buffer);
- //alocare dinamica pt string - sintaxa C
- a.proprietar = (char*)malloc(sizeof(char) * (strlen(buffer) + 1)); //new char[strlen(buffer) + 1];
- strcpy(a.proprietar, buffer);
- return a;
- }
- void afisareApartament(Apartament a) {
- printf("Apartamentul lui %s are o suprafata de %5.2f si %d camere.\n", a.proprietar, a.suprafata, a.nr_camere);
- }
- void citesteHotel(Hotel *h) {
- printf("Introduceti numar de apartamente: ");
- scanf("%d", &h->nr_apartamente);
- h->apartamente = (Apartament*)malloc(sizeof(Apartament) * h->nr_apartamente);
- for (int i = 0; i < h->nr_apartamente; i++) {
- h->apartamente[i] = citesteApartament();
- }
- }
- void afisareHotel(Hotel hotel) {
- printf("Hotelul are %d apartamente.\n", hotel.nr_apartamente);
- for (int i = 0; i < hotel.nr_apartamente; i++) {
- afisareApartament(hotel.apartamente[i]);
- }
- }
- Apartament copiazaApartament(Apartament apartament) {
- Apartament a;
- a.nr_camere = apartament.nr_camere;
- a.suprafata = apartament.suprafata;
- a.proprietar = (char*)malloc(sizeof(char) * strlen(apartament.proprietar) + 1);
- strcpy(a.proprietar, apartament.proprietar);
- return a;
- }
- void main() {
- Apartament apartament;
- apartament = citesteApartament();
- afisareApartament(apartament);
- Hotel hotel;
- citesteHotel(&hotel);
- if (hotel.apartamente[0].proprietar)
- free(hotel.apartamente[0].proprietar);
- hotel.apartamente[0] = copiazaApartament(apartament);
- for (int i = 0; i < hotel.nr_apartamente; i++) {
- free(hotel.apartamente[i].proprietar);
- }
- free(hotel.apartamente);
- free(apartament.proprietar);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement