Witam!
Bardzo proszę o ocenę zadania. Ucze sie programowania sam z ksiazki i roznych zrodel w internecie. Program dziala, jednak nie jestem pewien czy dobrze posluzylem sie "new" i w odpowiedni sposób zainicjalizowalem tablice dynamicznie.
Zadanie:
Struktura "Batonik" ma trzy pola. Pierwsze to marka slodyczy, drugie to waga (ktora moze zawierac czesc ulamkowa), a trzecie to liczba kalorii (liczba calkowita). Napisz program tworzacy tablice dynamiczna struktury "Batonik" za pomoca operatora "new". Zainicjalizuj ja wybranymi wartosciami oraz wyswielt zawatrosc wszystkich struktur.
#include <iostream>
#include <string>
struct batonik
{
std::string marka;
float waga;
int kcal;
};
int main()
{
using namespace std;
batonik *snack = new batonik[3];
batonik *pt=snack;
cout<<"Podaj marke batonika: ";
getline(cin,pt->marka);
cout<<"Podaj wage batonika: ";
cin>>pt->waga;
cout<<"Podaj ilosc kalori w jednym batoniku: ";
cin>>pt->kcal;
cout<<"\nPodaj marke batonika: ";
cin.get();
getline(cin,pt->marka);
cout<<"Podaj wage batonika: ";
cin>>pt->waga;
cout<<"Podaj ilosc kalori w jednym batoniku: ";
cin>>pt->kcal;
cout<<"\nPodaj marke batonika: ";
cin.get();
getline(cin,pt->marka);
cout<<"Podaj wage batonika: ";
cin>>pt->waga;
cout<<"Podaj ilosc kalori w jednym batoniku: ";
cin>>pt->kcal;
cout<<"\nDane pierwszego batonika: \n";
cout<<"NAZWA: "<<snack[0].marka<<endl;
cout<<"WAGA: "<<snack[0].waga<<endl;
cout<<"KCL: "<<snack[0].kcal<<endl;
cout<<"Dane drugiego batonika: \n";
cout<<"NAZWA: "<<snack[1].marka<<endl;
cout<<"WAGA: "<<snack[1].waga<<endl;
cout<<"KCL: "<<snack[1].kcal<<endl;
cout<<"Dane trzeciego batonika: \n";
cout<<"NAZWA: "<<snack[2].marka<<endl;
cout<<"WAGA: "<<snack[2].waga<<endl;
cout<<"KCL: "<<snack[2].kcal<<endl;
delete [] snack;
return 0;
}
Czy dobrze zaincijalizowalem tablice dynamicznie? Wyglada na to ze nazwy struktury moge uzywac naprzemiennie ze wskaznikiem - czy to jest prawidlowe podejscie czy moze jak juz uzywam wskaznikow to powininem odnosic sie tylko do *wskaznika a nie do nazwy struktury? Z gory wielkie dzieki za wszelkie wskazowki i komentarze.