Ich habe ein Array mit einer bestimmten Größe (zum Beispiel 100), die mit Benutzereingaben gefüllt ist. Der Benutzer muss jedoch nicht unbedingt genügend Daten eingeben, um das gesamte Array zu füllen.Wie Elemente des Arrays in C++ zu zählen
Ich möchte die Elemente des Arrays, die der Benutzer eingegeben hat, zählen. Wie kann ich das machen?
ich damit für Schleife versucht:
int COUNT=0;
for(int i=0; i<size; i++)
if (Student[i]=1) //which means this element is true, not empty element.
COUNT++;
cout<< COUNT+1 << "\n";
Aber dieser Code gibt einen Fehler auf dieser Linie:
if (Students[i]==1)
Auch, wenn der Benutzer sich wiederholende Elemente eintritt, ich will nur Zählen Sie die einzigartigen Elemente (zählen Sie jeden Wert einmal).
Mein Code ist:
#include <iostream>
#include <string>
#include <sstream>
#include <math.h>
#define size 100
using namespace std;
int main()
{
string Students_;
string word2;
getline(cin, Students_);
int k;
int l;
k = Students_.find("[");
Students_.erase(0, k + 1);
l = Students_.find("]");
string line2 = Students_.erase(l);
stringstream iss(line2);
string Students[size];
int counter = 0;
while (getline(iss, word2, ';') && counter < size) {
Students[counter++] = word2;
}
int COUNT = 0;
for (int i = 0; i < size; i++)
if (Students[i] == 1)
COUNT++;
cout << COUNT + 1 << "\n";
return 0;
}
Der Eingang zum Beispiel ist:
Students=[8347,Islam Said,(ARC135,ARC114,ARC134,ARC135);8256,Esraa Said,(ARC134,ARC135,ARC114);8336,Ismail Said,(ARC134,ARC135,ARC114);8285,Ismail Adballah,(ARC114,ARC135,ARC134,ARC114);8349,Esraa Kassem,(ARC135,ARC114,ARC134);8505,Bassant Kassem,(ARC114,ARC135,ARC134,ARC114);8381,Ismail Kassem,(ARC135,ARC134,ARC114,ARC135);8360,Bassant AbdAlrahman,(ARC114);8498,Mohamed Kamal,(ARC135,ARC114,ARC134);8255,Ali Bassem,(ARC114,ARC135);8437,Mohamed Said,(ARC135);8524,Osama Adballah,(ARC114,ARC135);8334,Osama Kamal,(ARC114,ARC135,ARC134);8501,Esraa Tarek,(ARC135,ARC134);8394,Ahmed Zain,(ARC134,ARC135)]
Der Eingang ist nicht konstant, es ist nur ein Beispiel.
's/if (Student [i] = 1)/if (Student [i] == 1) /' - auch für die Liebe alles, was anständig ist, bitte aktivieren sie Compilerwarnungen und notieren sie (zB 'gcc -Wall ...'). –
Verwenden Sie einen 'std :: vector', wenn Sie nicht wissen, wie viele Elemente der Benutzer eingeben wird. – NathanOliver
Aktivieren Sie zuerst mehrere Compiler-Warnungen. Fügen Sie dann eine [mcve] und eine eindeutige Problembeschreibung in alle Debugfragen ein, wie in [ask] beschrieben. Und zuletzt: Eine Frage pro Frage bitte. –