Struct hilfe
-
Hi,
ich müsste in meiner Funktion structs benutzen weiss aber nicht genau wie das geht. Hier ist meine Funktion:void koeff_eingabe(double *a,double *b,double *c,double *d) { double koeff[4]; int t; for(t=3;t>=0;t--) { printf("Koeffizienten für x^%d eingeben:",t); scanf("%lf",&koeff[t]); } *a=koeff[3]; *b=koeff[2]; *c=koeff[1]; *d=koeff[0]; }} int main(){ double a,b,c,d; koeff_eingabe(&a,&b,&c,&d); return 0; }
Der Struct müsste dann so aussehen
typedef struct{
double koeff[4];
} POLYNOM;
-
typedef struct{ double koeff[4]; } POLYNOM; void koeff_eingabe(POLYNOM *x) { int t; for(t=3;t>=0;t--) { printf("Koeffizienten für x^%d eingeben:",t); scanf("%lf",&(x->koeff[t])); } } int main() { POLYNOM x; koeff_eingabe(&x); return 0; }
-
Könntest du mir das ganze noch erklären bitte. x zeigt auf koeff[t] ?
Aber immer nur auf einen Wert oder?
Was ist wenn ich jetzt mit koeff[0]+koeff[1]+koeff[2]+koeff[3]=erg
weiterrechnen wollte geht das ohne weiteres?
-
Die Struktur POLYNOM stellt dir ein array für 4 Koeffizienten zur Verfügung.
In der Schleife zeigt x immer auf die selbe Struktur, nur die Elemente des
Arrays werden durchlaufen.Wenn du die Elemente z.B. summieren willst, nimm das Gerüst von c.rackwitz
und summiere anstatt einzulesen, aber natürlich erst nach dem Einlesen
-
Das mit dem Summieren war jetzt nur ein Beispiel ich möchte generell mit den eingelesenen Werten ausserhalb der Funktion weiterrechnen
-
Dann tu das.
Nach dem Funktionsaufruf koeff_eingabe(&x) sind deine Elemente unter x.koeff[t] erreichbar!
-
Aha so ist das.
Danke es hat funktioniert, bin endlich fertig.
-
http://www.cplusplus.com/doc/tutorial/structures.html
dort wird der -> operator erklaert.
das sind grundlagen, die solltest du in einem buch oder tutorial lernen.