c++
dummy: c++
Pytanie o strukturę i pole struktury z tablicą
Mam strukturę
struct student
{
string Imie;
int oceny[5]={0,0,0,0,0}
};
Chcę zainicjować zmienną typu student, ale nie wiem co wstawić tam gdzie napisałem x
student numer17 = {"Piotrek", x };
Czy da się w ogóle tak zrobić? Czy muszę po kolei każdą ocenę wpisywać, czyli
numer17.oceny[0] = 4; itd.
18 gru 23:53
a: w strukturze sie nie przypisuje wartosci...
int oceny[5] zostaw
bo to jest tylko opis
w mainie tworzysz jakis obiekt tego typu i tam dajesz wartosci.
np.
student zmienna; (tak jak by bylo int zmienna, to teraz student jest typem danych)
zmienna.imie = "Piotrek";
zmienna.oceny[0] = 4;
zmienna.oceny[1] = ...
zmienna.oceny[2]= ...
itd
A odp. na twoje pytanie −> zrobiles tablice 5elementowa, wiec tak
musisz do kazdego miejsca przypisac
18 gru 23:57
dummy: Dzięki za podpowiedź z tą strukturą, tak jak napisałem też działa, ale dostałem warning że
będzie
działać tylko dla c++11 i nie wiedziałem dlaczego
19 gru 00:04
jc: dummy, uwaga kompilatora dotyczyła linii int oceny[5]={0,0,0,0,0} w definicji struktury.
Jak pozostawisz: oceny[5]; będzie działać.
W funkcji main() możesz napisać: student numer17 = {"Piotrek",2,5,5,3,1 };
Nie musisz nawet wymieniać wszystkich wartości.
19 gru 08:44
Dziadek Mróz:
Struktura to taki przepis na placek. Masz napisane co jest potrzebne do placka, funkcje (C),
metody, konstruktory i operatory (C++) to odpowiednio mieszanie, ucieranie i pieczenie.
#include <iostream>
#include <string>
typedef struct Student {
std::string Imie;
int *oceny;
} Student;
void Student_clear(const Student &S) {
delete S.oceny;
}
int main(int argc, char **argv) {
Student student1;
student1.Imie = "Piotrek";
student1.oceny = new int[5]{1, 2, 3, 4, 5};
Student_clear(student1);
return 0;
}
19 gru 14:47