C++
-
Hallo leute ich habe gerade ein Problem bei einer Aufgabe:
Für eine Reihe von n gegebenen ganzzahligen Messwerten (n <= 100) soll der kleinste Wert
herausgesucht werden. Geben Sie jeweils in C/C++ die dazu notwendigen Typvereinbarungen an
sowie die Anweisungsfolge, die das gesuchte Ergebnis ermittelt (ohne Ein- und Ausgabe).#include <iostream> using namespace std; int main() { int Messwerte[100]; int min = 0; for( int i = 0; i<= 100 ; i++){ if( i == min){ cout << min << endl; } } }Könnte man das so machen?
-
Nein.
Uebrigens ist der Threadtitel grauenhaft.
-
so ganz grob die Struktur stimmt schonmal.
Aber:
* Das Arry ist nicht initialisiert. Warum überhaupt ein Array? Besser std::vector (->Google) Dann könntest du - sofern erlaubt - auch std::min_element nutzen. Aber aus Übungsgründen sollst du das vermutlich von Hand programmieren.
* Du sollst den minimalen Wert suchen. Du initialisiert "min" mit 0. Was, wenn in dem Array nur negative Werte stehen?
* Du vergleichst "i" mit "min". "i" ist aber nur der Schleifenzähler. Du musst mit den Werten im Array vergleichen.
* Du veränderst "min" nicht.
-
Hallo shine21,
also als erstes musst du ein geeignetes Array nehmen. Hier std::vector, weil es ja dynamisch sein soll. Da du keine Eingabe machen darfst, nimmst du für n einfach eine Zufallszahl. Ich hab dir hier mal den Ablauf beschrieben. Du musst nur noch die 6 Punkte entsprechend programmieren, und fertig.
#include <cstdlib> #include <iostream> #include <vector> #include <ctime> using namespace std; int main() { // 1. srand mit der Zeit ausführen. // 2. Zufallszahl zwischen 0 und 100 erzeugen (rand + modulo) und in einer Hilfsvariable abspeichern. // 3. for-Schleife von 0 bis < Zufallszahl laufen lassen. In jedem Durchlauf erzeugst du eine neue Zufallszahl und speicherst sie in deinem dynamischen Array (std::vector) ab. // 4. Neue Hilfsvariable einführen. Ihr gibst du den Wert des ersten Elements deines Arrays. // 5. for-Schleife von 1 bis < Zufallszahl laufen lassen. In jedem Durchgang machst du eine if-Abfrage. Wenn das Element am Index i kleiner ist, als das Element. // das du in der Hilfsvariable abgespeichert hast, dann setzt du deine Hilfsvariable auf das Element am Index i. // 6. Du hast nun dein kleinstes Element gefunden. }
-
// 5. for-Schleife von 1 bis < Zufallszahl laufen lassen.Müsste das nicht so sein:
// 5. for-Schleife von 1 bis < 100 laufen lassen.??
-
Fuchs aus dem Wald schrieb:
// 5. for-Schleife von 1 bis < Zufallszahl laufen lassen.Müsste das nicht so sein:
// 5. for-Schleife von 1 bis < 100 laufen lassen.??
Nein. Er soll ein
nfestlegen, 0 < n <= 100. Das passiert bei Schritt 2. Und n ist DIE Zufallszahl.
-
1.) Problem: ...
-> Abstrahiert durch eine Funktion(Algorithmus), die das loest.
2.) Eingabe
-> Parameter der Funktion, werden extern initialisiert/erzeugt/gefuellt, also nicht unser Problem
3.) Parameter der Funktion:
-> Array auf Messwerte und Anzahl der Messwerte, Messwerte sind ganzzahlig
4.) Array of int:
-> int*
5.) Anzahl als natuerliche Zahl > 0:
-> (unsigned) int
6.) Rueckgabewert: kleinster Messwert
-> int=> Funktionssignatur:
int min_value(int* values, unsigned int n)Fragen soweit zum ersten Teil?