Höhere Indexwerte dreier Arrays in ein viertes Array übertragen

Hallo,

wie kann ich den jeweils höheren Wert der Index dreier Arrays in ein viertes Array übertragen?

array1[] = {1,4,5,2,5,9};
array2[] = {0,4,8,3,2,7};
array3[] = {4,9,2,3,5,6};

array4[] = {4,9,8,3,5,9};

Ich hab hier etwas über strcmp gelesen, kann dies aber nicht auf mein Vorhaben übertragen.

Per for-Schleifen würde ich es zwar schon irgendwie hinbekommen, finde dies jedoch etwas "unschön".

Wer kann helfen?

Gruß Chris

hi,

nur zum verständnis:

sind das wertepaare und Du willst die summe der paare berechnen und vergleichen?

gruß stefan

Du könntest das etwa so lösen

for (byte idx = 0; idx < sizeof(array1); idx++) {
  array4[idx] = max(max(array1[idx], array2[idx]), array3[idx]);
}

Ich möchte Index 0 der ersten drei Arrays miteinander vergleichen und den größten Wert in Index 0 von Array4 schreiben. So würde ich gerne mit sämtlichen Index der drei Arrays verfahren. Das vor den Arrays kein Datentyp steht, hatte ich vergessen. Ein Byte pro Index würde mir reichen.

Gruß Chris

HA!

jetzt versteh' ich, was Du meinst... :slight_smile: :slight_smile: :slight_smile:

Chris72622:
Ich hab hier etwas über strcmp gelesen, kann dies aber nicht auf mein Vorhaben übertragen.

"Für das lexikografische Vergleichen zweier Strings kann die Funktion strcmp() verwendet werden." (Quelle) Das ist wohl nicht, was Du willst. Dazu ein Testsketch:

void setup() {
  Serial.begin(9600);
  Serial.println("Programmanfang");
  char str1[] = "aaa";
  char str2[] = "aab";
  char str3[] = "abb";

  String_Vergleich(str1, str2);
  String_Vergleich(str1, str3);
  String_Vergleich(str3, str2);
  String_Vergleich(str1, str1);
}

void loop() {}

void String_Vergleich(char s1[], char s2[]) {
  char temp[20];
  int ret = strcmp (s1, s2);
  if (ret == 0) {
    sprintf(temp, "%s == %s\n", s1, s2);
    Serial.print(temp);
  } else {
    sprintf(temp, "%s %c %s\n", s1, ( (ret < 0) ? '<' : '>'), s2);
    Serial.print(temp);
  }
}

Ausgabe:

Programmanfang
aaa < aab
aaa < abb
abb > aab
aaa == aaa

Solche Spezialfälle wie du da immer hast gehen meistens mit den Standard-Funktionen nicht :slight_smile:

Du muss man es halt per Hand machen. Ist doch nicht so schlimm

Ich danke Euch allen.

Gruß Chris