(Anfänger) Kleinste Zahl zurückgeben
-
Und wenn ich auf YouTube Tutorials anschaue, dann verbinden die auch immer "cout" mit C++?
siehe: https://youtu.be/vLnPwxZdW4Y?t=629
Kann mir jemand sagen warum?
-
@siebererrene
Hier ist eine offline Quelle
-
Im Falle, dass du C++ lernen willst, würde ich dir ein Buch nahe legen.
Meine Empfehlung wäre hier "Der C++ Programmier" von Ullrich Breymann ... am besten natürlich in der neusten Ausgabe zu C++17.Was du da machst ist eig bisher eher C, aber du verwendest Libraries aus C++, die es in C nicht gibt z.B. iostream. Du solltest dich erstmal entscheiden, was du lernen möchtest, dann können wir dir auch die entsprechenden Tipps geben wie du dein Programm nicht nur zum funktionieren bringst, sondern auch schönen Code schreibst.
Möglicherweise können wir dir auch bei dieser Entscheidung helfen, zumindest teilweise. Gibt es einen Grund, warum du dir diese Aufgabe gesetzt hast? ... Hast du das im Studium? Einfach nur ein Hobby? Was ist längerfristig das Ziel?
-
@siebererrene sagte in (Anfänger) Kleinste Zahl zurückgeben:
Und wenn ich auf YouTube Tutorials anschaue, dann verbinden die auch immer "cout" mit C++?
solltest du lassen. ernsthaft!
Kann mir jemand sagen warum?
in c++ läuft alles über streams und der ausgabestream heißt nunmal c(-onsole)out(-put)
-
@siebererrene sagte in (Anfänger) Kleinste Zahl zurückgeben:
dann verbinden die auch immer "cout" mit C++
Das Problem ist ja nicht das cout sondern das C statt C++.
-
@siebererrene sagte in (Anfänger) Kleinste Zahl zurückgeben:
Okay, danke für die schnellen Antworten!
Soll heißen eigentlich lerne ich eine Mischung aus beidem und nichts richtig?
Wahrscheinlich ist das so. Ist aber (leider) ein weit verbreitetes Phänomen. So weit verbreitet, dass es sogar einen Talk darüber gibt, dass Lehrende, die C++ lehren, nicht C lehren sollten (Stop teaching C). (Wenn man C lehren will, soll man natürlich C lernen - nur wenn es ein C++-Kurs ist, sollte eben nicht C drin sein)
Habt jemand von euch eine gute Quelle wo ich C++ selber erlenern kann?
Hm, das ist immer schwierig. Gute Bücher sind rar. Empehlungen: "Der C++-Programmierer" von Breymann und/oder "C++ Primer" von Lippman et al.
Und dann gibt es noch die C++ core guidelines (wo in I.13 dein Problem beschrieben wird), die aber vermutlich noch zu fortgeschritten sind.
Ansonsten möchte ich aber noch anmerken, dass dein Code ansonsten gut aussieht! Insbesondere dass du mit
int min = arr[0];
anfängst, finde ich gut. In deiner for-Schleife kannst du dann allerdings das 0. Element überspringen. Das wird nicht kleiner als es selbst sein.Wenn du C++ lernen willst, gehört noch Wissen über die STL dazu (Referenzen findest du hier oder hier). Schau dir insbesondere die Referenzen der Header
<vector>
,<string>
und<algorithm>
an (in der Reihenfolge).Auch für dein Problem gibt es bereits eine fertige Lösung. Sie nennt sich std::min_element (mit Beispielcode in gutem C++!). (mag noch zu fortgeschritten sein - es ist auf jeden Fall kein Fehler, Dinge wie die Suche nach dem Minimum einmal selbst implementiert zu haben)
-
Dieser Beitrag wurde gelöscht!
-
@Wade1234 sagte in (Anfänger) Kleinste Zahl zurückgeben:
in c++ läuft alles über streams und der ausgabestream heißt nunmal c(-onsole)out(-put)
char
output. Bezüglich Konsolen, Fenstern, Pipes, etc. ist C++ komplett agnostisch.
-
@SeppJ
das heißt echt char output?
-
-
@Wade1234 sagte in (Anfänger) Kleinste Zahl zurückgeben:
@SeppJ
das heißt echt char output?Stroustrup muss es wissen.
-
@Wade1234 sagte in (Anfänger) Kleinste Zahl zurückgeben:
das heißt echt char output?
Steht ja doch auch nirgends geschrieben, daß
STDOUT
und Kollegen an einer Konsole, einem Terminal hängen müssen.Auch in Anbetracht daß es auch
std::wcout
und Co für wide characters gibt, ist character out logischer.@siebererrene sagte in (Anfänger) Kleinste Zahl zurückgeben:
int returnSmallest( int arr[] ){
Dein Stichwort für das da ist Array-to-Pointer decay1). Die eckigen Klammern bei Funktionsparametern sind exakt dasselbe als stüde da für Dein Beispiel
int returnSmallest(int *arr) {
Nimm in C++ besser
std::array<>
, oderstd::vector<>
wenn Du einen Container willst, der in der Größe flexibel ist.1) Ja, streng genommen "zerfällt" da nichts, aber der Begriff hat sich nunmal eingebürgert. Der Name eines Arrays entspricht in den meisten Verwendungsfällen der Adresse des ersten Elements des Arrays.
-
Dieser Beitrag wurde gelöscht!