Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Werte eines Array zusammenzählen ?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
13.05.2003, 09:33 Uhr
mastertango



Hallo leute....wie schon öfters gesagt bin ich ein Anfänger in C++. Heute hab ich das "kleine" Thema Arrays.
Ich habe nun mal folgendes Array deklariert.

double dumsatz[5] = {54000, 57000, 59000, 55600, 53450};

die werte verändern sich während des Programmablaufs.
Meine Frage nun, wie kann ich am Ende des Programms alle Werte zusammengezählt ausgeben ohne schreiben zu müssen.
double dgesamt=dumsatz[0]+dumsatz[1]+ .....usw.
cout<<dgesamt;

gibst da ne einfachere Alternative. Ich stelle mir das Ding eben mit 100ten Elementen vor...was dann ziehmlich "dähmlich" wäre ;-)


MFG

Master
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.05.2003, 09:56 Uhr
aiken




C++:
double summe = 0;
for( i = 0 ; i < MAX_ARRAY_INDEX ; i++ )
      double += dumsatz[i];
std::cout << "Summe= " << summe << srd::endl;



Man kann auf Feldelemente über den Index zugreifen

Gruß Aiken
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.05.2003, 10:03 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ähm dein code ist da nicht ganz korrekt aiken,
hier nochmal verbessert:


C++:
#define MAX_ARRAY_INDEX 5
double dumsatz[MAX_ARRAY_INDEX] = {54000, 57000, 59000, 55600, 53450};

double summe = 0;
for( i = 0 ; i < MAX_ARRAY_INDEX ; i++ )
     summe += dumsatz[i];
std::cout << "Summe= " << summe << std::endl;


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.05.2003, 10:06 Uhr
mastertango



...gut gut......soweit verstanden....kriege es aber noch nicht zum laufen.
sag mir bitte noch mal was zum MAX_ARRAY_INDEX. Muss ich den vorher definieren oder funzt der so oder wie oder was??

Gruß

Master
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.05.2003, 10:09 Uhr
mastertango



ahh ja ...jetzt macht es sinn. Hmmm....naja iss nicht ganz das gewünschte. Aber geht wohl nicht anders......

dachte es würde vielleicht sowas gehen wie....

double umsatz[3]= {2000,3000,5400};
double gesamt=umsatz[0+1+2];
oder so ähnlich ....
naja sollte aufhören zu denken ;-)

Gruß
Master
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.05.2003, 10:18 Uhr
aiken



wenn Dir das mit dem MAX_ARRAY_INDEX nicht gefällt, (Mir gefällt es nicht) dann nimm doch STL Container:
(dies ist kein vollständiger Code..)

C++:

std::vector<double>   umsatz;
umsatz.push_back( 2000 );
umsatz.push_back( 3000 );

double einUmsatz = 3.421;
umsatz.push_back( einUmsatz );

double summe = 0;
for( i = 0 ; i < umsatz.size() ; i++)
     summe *= umsatz(i);
...



Vorteil: der Container kann wachsen; Dein C-Array nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.05.2003, 10:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Das geht natürlich auch


C++:
double umsatzsumme(int bis, double umsatz[MAX_ARRAY_INDEX]){
double rv=0;
for( i = 0 ; i < bis ; i++ ) rv += umsatz[ i ];
return rv;
}



Jetzt kannst du den Spass in main aufrufen mit z.B.

C++:
double teilumsatz=umsatzsumme(3,dumsatz);


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.05.2003, 10:32 Uhr
aiken



sorry, aber da warte ich schon auf den Tag, das jemand umsatzsumme() mit bis > MAX_ARRAY_INDEX aufruft ....

Und das Problem, das MAX_ARRAY_INDEX bekannt sein muß, hat sich damit ja auch nicht erledigt.

Aiken
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.05.2003, 10:34 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


@ heiko, ich würde das aber etwas noch anders machen:

C++:
double umsatzsumme(int bis, [b]double *umsatz) // Variabler[/b]
{
  double rv=0;
  for( i = 0 ; i < bis; i++ )
    rv += umsatz[ i ];
   return rv;
}



und dann per


C++:
double teilumsatz=umsatzsumme(3,&dumsatz);


aufrufen!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.05.2003, 10:37 Uhr
mastertango




Zitat:
aiken postete
wenn Dir das mit dem MAX_ARRAY_INDEX nicht gefällt, (Mir gefällt es nicht) dann nimm doch STL Container:
(dies ist kein vollständiger Code..)

C++:

std::vector<double>   umsatz;
umsatz.push_back( 2000 );
umsatz.push_back( 3000 );

double einUmsatz = 3.421;
umsatz.push_back( einUmsatz );

double summe = 0;
for( i = 0 ; i < umsatz.size() ; i++)
     summe *= umsatz(i);
...



Vorteil: der Container kann wachsen; Dein C-Array nicht.





Wie meinst du das ?? "Mein Array kann nicht wachsen" ?? Meinst du damit das er nicht mal 5 und später mal 8 Werte umfassen kann oder wie??
Aber ich kann ihn ja dynamisch machen oder nicht...nagut ..ich denke das führt nun auch zu weit.....eigentlich hatte ich ja nur ne klitze kleine Anfängerfrage ;-)

Gruß Master
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: