Array komplett auslesen
-
hi,
Gibt es eine möglichkeit aus einem Array die gespeicherten zahlen ab zu rufen ohne selbst zu wissen in welchem fach welche zahl steckt ?
Beispiel:... int Array[3]; cin >> Array[1]; cin >> Array[2]; cin >> Array[3]; ...
Also wie kann ich jetzt möglichst kurz die gespeicherten zahlen abfragen.
... if(Array == 3 && Array == 1 && Array == 2){ cout << "Hier könnte ihre Werbung stehen" ; } ...
Es währe natürlich schön wenn es so einfach ginge wie oben...
Ich hoffe ihr könnt mir helfenPS: google und sufu haben bei mir bisher keine ergebnisse gebracht.
LG
Bestchaos
-
Üblicherweise iteriert man da einfach über alle Felder und überprüft ob der Wert enthalten ist.
btw:
Die Adressierung eines Arrays fängt bei 0 an und geht bis n-1. Und nicht von 1 bis n!
-
eine For- Schleife zum iterieren wäre gar nicht ....
Dies kannst du dann für die Eingabe und für die Ausgabe nutzen!
int array [größe 6!]
//Eingabe Array
for(int i=0; i<5; i++){
array[i] = //wert der gespeichert werden soll an die i.te stelle!
}//Ausgabe Array
for(int i=0; i<5; i++){
cout<<array[i];
}
-
BestChaos schrieb:
Gibt es eine möglichkeit aus einem Array die gespeicherten zahlen ab zu rufen ohne selbst zu wissen in welchem fach welche zahl steckt ?
Kannst Du das nochmal umformulieren? Ich habe die Frage nicht verstanden. Was meinst Du genau mit "abrufen" und "ohne selbst zu wissen in welchem fach welche zahl steckt" ?
BestChaos schrieb:
Beispiel:
... int Array[3]; cin >> Array[1]; cin >> Array[2]; cin >> Array[3]; ...
Das müsste Array[0], Array[1] und Array[2] sein.
BestChaos schrieb:
Also wie kann ich jetzt möglichst kurz die gespeicherten zahlen abfragen.
Was meinst Du genau mit "abfragen" ?
BestChaos schrieb:
... if(Array == 3 && Array == 1 && Array == 2){ cout << "Hier könnte ihre Werbung stehen" ; } ...
Was soll das bedeuten?
BestChaos schrieb:
Es währe natürlich schön wenn es so einfach ginge wie oben...
Was denn? Was soll denn da eigentlich passieren?
kk
-
Suchst du ungefähr das:
#include <algorithm> #include <iostream> using namespace std; int array[] = { 3, 4, 5 }; bool test( int val ) { return val == 1 || val == 2 || val == 3; } int main() { if( find_if( array, array + 3, test ) != array + 3 ) cerr << "gefunden\n"; }
-
Oder so (wenn alle enthalten sein müssen):
#include <algorithm> #include <iostream> using namespace std; int array[] = { 3, 2, 1 }; bool test( int val ) { return val == 1 || val == 2 || val == 3; } int main() { if( count_if( array, array + 3, test ) == 3 ) cerr << "gefunden\n"; }
-
Oder so
#include <algorithm> #include <iostream> #include <set> using namespace std; int array[] = { 3, 2, 1 }; int testArray[] = { 1, 2, 3 }; int main() { sort( array, array + 3 ); if( includes( array, array + 3, testArray, testArray + 3 ) ) cerr << "gefunden\n"; }
-
manni66 schrieb:
...
Oder so
...
Oder soEs macht Dir also Spaß zu raten, was der OP eigentlich wollte, was?
manni66 schrieb:
... int array[] = { 3, 2, 1 }; int testArray[] = { 1, 2, 3 }; ... if( includes( array, array + 3, testArray, testArray + 3 ) ) ...
für std::includes müssen beide Sequenzen sortiert sein.
-
krümelkacker schrieb:
manni66 schrieb:
... int array[] = { 3, 2, 1 }; int testArray[] = { 1, 2, 3 }; ... if( includes( array, array + 3, testArray, testArray + 3 ) ) ...
für std::includes müssen beide Sequenzen sortiert sein.
Ja, deswegen wird array ja auch sortiert.
-
hi,
Danke für eure Antworten. Ich habe mein problem jetzt mit einer for schleife gelöst.... for ( int i = 0 ; i < 8 ; i++ ){ if (array[i] == 1){ eins = true; }else if (array[i] == 2){ zwei = true; }else if (array[i] == 3){ drei = true; } } if( eins == true && zwei == true && drei == true ){ cout << "Du hast Gewonnen!" << endl << endl ; } ...
LG
Bestchaos
-
BestChaos schrieb:
Ich habe mein problem jetzt mit einer for schleife gelöst.
... for ( int i = 0 ; i < 8 ; i++ ){ if (array[i] == 1){ eins = true; }else if (array[i] == 2){ zwei = true; }else if (array[i] == 3){ drei = true; } } if( eins == true && zwei == true && drei == true ){ cout << "Du hast Gewonnen!" << endl << endl ; } ...
Aha.
Tipp:
irgend_ein_bool == true
ist gleichirgend_ein_bool
. Die Variablen hättest Du auch anders nennen können, zB "eins_enthalten", "zwei_enthalten" etc. Dann könnte deinif
nämlich so aussehen:if (eins_enthalten && zwei_enthalten && drei_enthalten) ...
und man weiß genau, was gemeint ist.
Du solltest Dich aber auch mit der Standardbibliothek vertraut machen. Da sind viele Klassen und Funktionen drin, die sehr praktisch sind. Beispielsweise std::set, std::map, oder auch std::includes. Mit std::set könnte man es zB so machen (quick'n'dirty) -- um mal etwas völlig anderes zu zeigen hier.
#include <set> ... std::set<int> s (&array[0], &array[0]+8); if (s.count(1) && s.count(2) && s.count(3)) cout << "Du hast Gewonnen!" << endl << endl;
manni66 schrieb:
krümelkacker schrieb:
für std::includes müssen beide Sequenzen sortiert sein.
Ja, deswegen wird array ja auch sortiert.
Sorry, das habe ich übersehen.