Rechnen mit Arrays

doofy83

Grünschnabel
Hallo
Bin gestern auf ein Problem gestoßen und komme einfach nicht drauf wie ich es lösen könnte.
Hab zwei Arrays z.B. doubel werte1[5]={1.1, 2.2, 3.3, 4.4, 5.5};
doubel werte2[5]={0.1, 0.2, 0.3, 0.4, 0.5};
nun will ich die zwei Arrays von einander subtrahieren und die Ergebnisse in ein drittes Array schreiben.

Code:
         for (int i=0; i<=4; i++)
	{
		double differenz[5];
		differenz[5] ={ werte1[i] - werte2[i] };
		
	}
so irgendwie hab ich mir das gedacht, aber das t so nicht.
jedenfalls soll dann quasi für dieses Beispiel im Array differenz die differenz von 1,1 -0,1
2,2 - 0,2 usw. (also die zaheln 1, 2, 3, 4, 5) stehen

dann wüßte ich noch gerne, wie ich die summe aus einem Array bilde z.B.
summe von differenz[5]={1, 2, 3, 4, 5} ==>> 15

danke schonmal
mfg Doofy

Ach ja: Das ich jeden wert einzeln addieren kann weiß ich, ist mir aber bei 200 Werten zu aufwendig
 
Zuletzt bearbeitet:
Fast richtig gemacht.

C++:
double differenz[5];
for (int i=0; i<5; i++)
{
// Position i beachten
differenz[i] = werte1[i] - werte2[i];
}

int summe = 0;
for (int i=0; i<5; i++)
{
summe += differenz[i];
}

mfg :)
 
Saaaau cool danke!!
Ich dachte schon es antwortet keiner mehr.
Auf den ersten Teil hätte ich aber auch mal selber drauf kommen können.
Das mit dem += kannte ich noch nicht. Wofür steht das denn genau?
 
Hy,

Code:
summe += differenz[i];
ist das gleiche wie
Code:
summe = summe + differenz[i];
"Add the value of the second operand to the value of the first operand; store the result in the object specified by the first operand." - MSDN

mfg
 
Aah... leuchtet ein!
Da summe mit 0 definiert ist, ist
Code:
summe + differenz[i] 0 = 0+1+2+3+4+5

super danke
 
eine Frage hätte ich doch noch:
wie ermitle ich den den größten Wert aus einem Array?
ich dachte erst es würde so vielleicht funktionieren:
Code:
double maxwerte1[5];
for (int i=0; i<5; i++)
{
maxwerte1[i] = werte1[i] < werte1[i];
} 
cout<<maxwerte1[0];
geht aber leider nicht so einfach:confused:
 
Wenn wir jetzt davon ausgehen das du nur POSITIVE Zahlen im Array hast dann initialisierst du einfach eine Variable mit 0 und prüfst ob der wer höher ist den du gerade im Array rausnimmst!!

Code:
double maximum = 0;
for( int i = 0; i < anzahl_der_Elemente; i++ )
{
  if( maximum < array[i] ) 
  {
      maximum = array[i];
      //Wenn du z.B. noch wissen willst an welcher Stelle
      //das maximum steht machst du einfach noch eine Variable
      //die die Stelle speicher... z.B. int stelle = i;
  }
}
cout << "Maximum " << maximum; //Und vielleicht noch an welcher Stelle << " - An der Stelle " << i;

Ich habe ein wenig Pseudo-Code genommen sodass es vielleicht besser verstanden wird...

Gruß

//EDIT:
Jetzt hab ich noch meinen Zusatz vergessen.... wenn du nicht weisst welche Zahlen du hast initialisierst du maximum mit dem ersten Element und fängst die for Schleife mit dem 2ten Element an:
Code:
double maximum = array[0]
for( int i = 1; ......

Komplett vergessen...
 
Zuletzt bearbeitet:
ok, hab zwar ein wenig gebraucht aber habs jetzt kapiert.
maximum wird im "if" solange überschrieben bis der höchste wert im array abgefragt wir. allerdings hab ich anstatt
Code:
if( maximum < array[i] )
das < durch ein <= ersetzt. hat den vorteil das, wenn ich stelle=i im "if" definiere, es auch nochmal überschrieben wird wenn gleich der erste wert (array[0]) der größte ist.
wenn man dann maximum mit array[0] als startwert nimmt kann man das <= einfach umdrehen und schon hat man minimum.
Danke nochmal ihr seid seid klasse!:):):)
 
Zurück