Hallo,
ich will ausrechnen, wieviel zahlen im array stehen
int zahl[]={1,5,6,8,12,345,7,23};
int sum=0;
for (int i=0; i???; i++)
{
sum++;
cout
Hallo,
ich will ausrechnen, wieviel zahlen im array stehen
int zahl[]={1,5,6,8,12,345,7,23};
int sum=0;
for (int i=0; i???; i++)
{
sum++;
cout
Hallo.
Wenn nicht gerade ‚zahl.length()‘ verwendet werden soll dürfte ‚for (int i=1;;i++)‘ bereits ausreichend sein.
HTH
mfg M.L.
Wenn nicht gerade ‚zahl.length()‘ verwendet werden soll dürfte
‚for (int i=1;;i++)‘ bereits ausreichend sein.
Es gibt doch in C gar kein ‚zahl.length()‘… Versteh deine Antwort nicht…
Ich würde es so machen:
int zahlen[] = {1, 2, 3, 4, 5}
int anzahl_eintraege = sizeof(zahlen) / 4;
Das geht aber nur für 'int’s, da die bei bei 32-Bit Maschinen eine Größe von 4 Bytes haben. Für andere Datentypen musst die 4 entsprechend austauschen.
Ich würde es so machen:
int zahlen[] = {1, 2, 3, 4, 5}
int anzahl_eintraege = sizeof(zahlen) / 4;
Das geht aber nur für 'int’s, da die bei bei 32-Bit Maschinen
eine Größe von 4 Bytes haben. Für andere Datentypen musst die
4 entsprechend austauschen.
Warum dann nicht:
int anzahl\_eintraege = sizeof(zahlen)/sizeof(int);
bzw. um es einfacher wartbar zu machen:
typedef int array\_type;
array\_type zahlen[] = {1, 2, 3, 4, 5};
int anzahl\_eintraege = sizeof(zahlen)/sizeof(array\_type);
Hallo,
ich will ausrechnen, wieviel zahlen im array stehenint zahl[]={1,5,6,8,12,345,7,23};
Eine dumme Frage: wo kommen die Werte her? Wäre es nicht möglich, mit ein paar Zeilen Code eine Datei als Datenquelle zu verwenden, die einzelnen Werte in einen STL-vector einzulesen, ind dann einfach vector::size() zu verwenden? In Anbetracht der Tatsache, dass du sowieso C++ verwendest, sind C-Arrays nicht unbedingt erste Wahl.
typedef int array_type;
array_type zahlen[] = {1, 2, 3, 4, 5};
int anzahl_eintraege = sizeof(zahlen)/sizeof(array_type);
Oder so, ja!
Greetz, Chris
Hallo,
typedef int array_type;
array_type zahlen[] = {1, 2, 3, 4, 5};
int anzahl_eintraege = sizeof(zahlen)/sizeof(array_type);
nööö, geht noch anders
#define ARRAY\_SIZE(x) (sizeof(x)/sizeof(\*(x)))
...
int izahl[] = {1, 2, 3, 4, 5};
int ianzahl = ARRAY\_SIZE(izahl);
double fzahl[] = {1.1, 2.2, 3.3, 4.4, 5.5};
int fanzahl = ARRAY\_SIZE(fzahl);
...
geht in den „meisten Fällen“
CMБ
falls das Array extern ist
Hallo Leo,
die version mit ARRAY_SIZE ist immer zu empfehlen.
Nur wenn das array als pointer kommt, oder es nur extern declariert ist, dann gibt es noch die möglichkeit eines End-Delimiters, z.B. 0, -1 oder INT_MIN, aber halt eine Zahl die sonst nicht verwendet wird.
extern int zahl[];
#define INT_END_OF_ARRAY INT_MIN
int sum=0;for (int i=0; zahl[i] != INT_END_OF_ARRAY; i++)
{
sum++;
… += zahl[i];
cout