Struktur
-
Verstehe ich ja auch kaum wie ich das als structur machen soll ??
Hier ist so ne andere Aufgabe ( auch mit Strukturen zu lösen)
double* feld;
Der Zeiger soll auf ein Feld zeigen, dessen Länge n in einer integer-Variable gespeichert
ist. Beispielausgabe für n = 5: [ 1 2 3 4 5 ]. Wenn beim Aufruf von ausgeben keine
Länge angegeben wird, soll standardmässig die Länge 1 zugrundegelegt werden, d.h. nur
der Wert, auf den der Zeiger direkt verweist, wird ausgegeben.Also mir sagt das gar nichts .. vielleicht kannst du helfen
danke im voraus
Firstrun
-
Ich kann mir nur vorstellen das diese Übung Überladung zeigen soll:
void Ausgabe(double * feld) { cout<<*feld; } void Ausgabe(double * feld,int len) { for(int i = 0;i < len;++i,++feld) cout<<*feld; } int main(int argc, char * argv[]) { double t[5] = {1,2,3,4,5}; Ausgabe(t); Ausgabe(t,5); return 0; }
Die Struktur verstehe ich an dem Punkt nicht. Eventuell sowas ?
struct Ausgabe2 { void operator()(double * feld); void operator()(double * feld,int len); }; void Ausgabe2::operator()(double * feld) { cout<<*feld; } void Ausgabe2::operator()(double * feld,int len) { for(int i = 0;i < len;++i,++feld) cout<<*feld; } int main(int argc, char * argv[]) { double t[5] = {1,2,3,4,5}; Ausgabe2 ausg; ausg(t); ausg(t,5); return 0; }
-
Danke ...
nur ich selbst verstehe die Aufgabe auch netAlso
double* feld;
Der Zeiger soll auf ein Feld zeigen, dessen Länge n in einer integer-Variable gespeichert
ist.
Beispielausgabe für n = 5: [ 1 2 3 4 5 ].
Wenn beim Aufruf von ausgeben keine
Länge angegeben wird, soll standardmässig die Länge 1 zugrundegelegt werden, d.h. nur
der Wert, auf den der Zeiger direkt verweist, wird ausgegeben.Das heisst wenn man ein Feld mit 5 Werten hat dann soll er 1 2 3 4 5 ausgeben
Wenn man aber direkt ausgeben drückt ohne die Felder aufgefüllt zu haben dann soll immer die Länge " 1 " ausgegeben werden , eben nur der Zeiger .Nur wie soll ich das als " struct " darstellen.
Also die Fuktion soll glaube ich so aussehen
Menü:
1.) Feld belegen
2.) Feld ausgebencout << " Ein Feld wird nun belegt von 1 beginnend << endl;
cin >> >> *feld endl;Er soll solange irgendetwas in ein Feld speichern von 1 bis n , solange man es nicht ausgiebt .
Wenn das Feld leer ist , soll nur der Zeiger aufs erste Feld ausgegeben werden.Hoffe du kannst mir helfen ..
Bist mir eine Grosse Hilfe am Sonntag
Firstrun
-
hallo ?
-
Vielleicht sowas:
struct foo { int* ptr; }; void ausgeben(foo* structure) { for(int i=0; i<strlen(*structure->ptr); ++i) cout << "In ptr[<<i<<"] steht:"<<structure->ptr[i]<<endl; }
Hab aber keine Ahnung
mfg
Glamdring
-
Naja wo ist den die Eingabe??
Also man muss irgendwas in n Felder eingeben und dann wieder ausgeben können.
Wenn nix eingegeben worden ist soll nur 1 ausgegeben werdenHmm grübbel grübbel
einer ne Idee?!
-
Gut, dann:
int&din() { string eing; cout << "Wollen sie ein Element einbgeben (J/N)" << endl; cin >> einmg; static int ar[5]; int counter = 0; while (eing == "J") { if(counter<5) { int zahl; cout << "Bitte geben sie eine Zahl ein" <<endl; cin >> zahl; ar[counter] = zahl; ++counter; cout << "Wollen sie ein Element einbgeben (J/N)" << endl; cin >> eing; } } return(ar); }
So???
mfg
Glamdring
-
Das sieht vernünftig aus ... nur
Man soll ja auch ausgeben können .. also dann 1 , 2 ,3 ,4 ,5
Und direkt ausgeben können das dann nur eine 1 rauskommtDanke
Firstrun
-
Keiner ne Idee?!
-
Firstrun schrieb:
Man soll ja auch ausgeben können .. also dann 1 , 2 ,3 ,4 ,5
Und direkt ausgeben können das dann nur eine 1 rauskommtGlamdring