0 Daumen
62 Aufrufe

Frage:

Schreiben ein C/C++ Programm.

Gegeben sei das Integer-Feld z[10] wie im Programmfragment angegeben.

Ermitteln Sie mittels eines Schleifenkonstrukts die groesste Zahl in diesem Feld

und speichern diese in die Variable max. Geben Sie max auf die Konsole aus


Code:

#include <iostream>

using namespace std;

int main()

{int z[10]={10,15,17,28,7,-3,-8,9,10,20};
int i,b;
i=z[10];
for(i;i>b;i++)
{

      cout<<"maximal zahle="<<i;
}

  return 0;
}

von

Das simpelste ist, zuerst einer int-Variable den Wert 0 zuzuweisen und dann in einer Schleife den größten Wert suchen. Danach einer zweiten, etwa 'minimum' genannt, den Wert der größten und dann den kleinsten Wert zu suchen. Ist zwar nicht gefragt, könnte aber einer wissen wollen.

Da es sich um c++ handelt, könnte man aber auch die Include-Datei limits.h mit einbinden und

die darin definierte Konstanten INT_MAX und INT_MIN.

Weist man dann Variablen wie etwa ''Minimum' INT_MAX zu und 'Maximum' INT_MIN, so kann man das Finden der beiden extremsten Werte auf einen Schleifendurchgang reduzieren. Der nächste Schritt wäre dann den Range(Spannweite zu ermitteln).

@rustyoldboy
Wie kommst du darauf, dass dein Ansatz der simpelste ist? Hast du dir meine Antwort dazu durchgelesen?
Da wird das Problem mit nur einer Schleife gelöst.

1 Antwort

0 Daumen

Folgender Algorithmus kann helfen:
Erstelle Variable "int max".
Setze max = z[0]
Durchlaufe das Array ab Index 1.
Wenn z[i] > max => max = z[i]

Nach durchlauf des Arrays ist in max dann das Maximum gespeichert.

von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community