Schleife über array in c++
Möchte ich eine Schleife über ein array, das ich habe, die hat einen max-Wert von 1000. Ich bin füllen das array mit Werten aus einer Textdatei. Ich bin versucht, eine Schleife durch das array, aber in meiner for-Schleife, ich weiß nicht, die Länge des Arrays, also ich weiß nicht, was in dem zweiten Teil der for-loop-Anweisung. Zum Beispiel: ich habe ein array mit dem Namen: int scores[1000];
und ich bin versucht, eine Iteration durch das array und putting erreicht souverän in einer Klasse-Kategorie. Also A = 90-100, B = 80-89, C = 70-79, D = 60-69, F = 0-59.
Also ich weiß nicht, was meine for-Schleife würde das so Aussehen:
for(int i = 0; i < ...; i++){
if(scores[i] > = 90 || scores[i] <= 100){
//Do stuff...
}
Ich glaube, ich bin auch verwirrt, wie man die gesamtaktivität jeder Kategorie am Ende zu. Aber für die meisten Teil dessen, wie eine Iteration durch das array. Ich weiß, sizeof(erzielt[]) wird nicht funktionieren, denn das gibt mir die int-Größe und nicht die Länge des Arrays selbst. Trotzdem danke im Voraus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine
std::vector
(link) statt, können Sie Elemente hinzufügen und haben den Vektor dynamisch die Größe ändern. Dass die Größe abgefragt werden kann ganz einfach über diesize()
Methode. Wenn Sie arrays wie diese, haben Sie, um zu verfolgen die Anzahl der Elemente in ihm selbst.Wenn Sie eine Vektor-filles mit Elementen der Schleife könnte wie folgt Aussehen:
Wenn Sie zur Verwendung von arrays und eigentlich
scoreCount
variable mit der Anzahl der real Werte in es gesetzt, einfach in den loop:Eine Dritte option, wie ich bereits erwähnt in den Kommentaren, wäre die Initialisierung des gesamten Arrays mit einem Wert, dass du nie mit (normalerweise -1) und dann verwenden, die als marker für gefüllte vs. leere array-Positionen etwa so:
Eigentlich die
sizeof()
getan werden sollte, wie diese:sizeof(scores) /sizeof(scores[0])
Und dies wird Ihnen die insgesamt element-Nummern des Arrays.
Beim Auffüllen der
scores
array, die Sie brauchen, um tatsächlich zu zählen, wie viele Elemente, die Sie in Sie setzen. Dann erinnern Sie sich, dass die Anzahl und verwenden Sie es für die iteration später. Zum Beispiel, Sie haben möglicherweise Lesen Ihre Ergebnisse wie dieses:Gibt es einige andere Optionen zu prüfen:
std::vector
statt.Durch die Art und Weise, die logische Anweisung innerhalb der Schleife immer true sein. Sind Sie sicher, dass Sie nicht bedeuten, die Verwendung
&&
statt||
?Wenn Sie wirklich wollen, um einen container mit einer festen Größe verwenden
std::array
für moderne C++ statt einem C-array:Sonst ein
std::vector
:Wenn Sie sind in der Lage, die C++11 ich empfehle auch die Verwendung der festen Breite integer-Typen.