Neuling
-
Hallo nochmals zusammen,
ich bin immer noch nicht weiter gekommen. Wie schaut denn diese Befehlsfolge in reinem C-Code aus ???????Also kein c++ oder sonstiges, sondern reiner C-Code........... Habe mal folgendermassen angefangen:
int zahl=0,zahl1=0;
int zahlmax=0,zahlmin=0;
int count;for (count=1; count<=9; count++)//Schleife leuft 9 mal + 1 die Erste Auffeorderung
{
printf("\n\tBitte geben Sie eine Zahl ein\t");
scanf ("%d",&zahl);
fflush(stdin);
if (zahlmin>=zahl);//zahlmin wird ausgeweartet
zahlmin=zahl;
else if (zahlmax<=zahl);//zahlmax wird ausgeweartet
zahlmax=zahl;} //Ausgabe min und max Werte
printf("\n\n");
printf ("\tSie haben die kleinste Zahl: %.0lf \n\n" ,zahlmin);
printf ("\tund die groeste Zahl: %.0lf eingetippt\n" ,zahlmax);Irgendwas ist da noch falsch, nur weiß ich nicht was......
-
Ja, da fehlen noch C++ Tags (unter den Smilies)
Außerdem sollte nach nem if kein Semikolon kommen
fflush(stdin);
ist glaube ich nicht so ne dolle Idee...
Und dann solltest du es vermeiden, min/max mit "eigenen" Werten zu initialisieren(erst mal hast du ja max nur deklariert und min 0 zugewiesen - max kann also auch 9999 sein - und dein Ergebnis ist falsch. und/oder du gibst nur zahlen > 0 ein und das Minimum ist trotzdem 0)
deshalb nehm doch die erste eingabe für das initialisieren der werteich hab kein plan von dem ganzen scanf/printf zeugs und falls du die HA wirklich in C machen willst, bist du hier eindeutig im falschen Forum, deshalb hab ich mal die C++ Varianten genommen
Falls du was nicht verstehst, kannste ja nachfragen:#include <iostream> int main() { int wert; int max, min; std::cout << "Bitte geben Sei eine Zahl ein!\t"; std::cin >> wert; max = min = wert; for(int count=1; count < 9; count++) { std::cout << "Bitte geben Sei eine Zahl ein!\t"; std::cin >> wert; if(wert < min) min = wert; if(wert > max) max = wert; } std::cout << std::endl; std::cout << "Min.: " << min << std::endl << "Max.: " << max << std::endl; //ggf. Konsole offen halten }
bb
PS: Schleife leuft 9 mal (ich will nen Smilie, was sich die Augen zu hält :D)
-
Nö,
dieser Code soll rein in C sein.
-
andy135 schrieb:
Irgendwas ist da noch falsch, nur weiß ich nicht was......
Hm, hast du eine Fehlermeldung oder was Ähnliches? Oder woher weisst du, dass etwas falsch ist?
Edit:
%.0lf
- bist du da sicher beiint
?
-
Weil er bei min-Wert immer nur 0 ausgibt. Die Ausgabe des Maxwertes stimmt.
-
andy135 schrieb:
Weil er bei min-Wert immer nur 0 ausgibt. Die Ausgabe des Maxwertes stimmt.
lies meinen post
-
Wenn ich aber zahlmin mit int ohne =0 initialisiere, dann kommt die Fehlermeldung, oder Warnung, dass eine nicht initialisierte lokale Variable verwendet wurde. Das gleiche gilt auch für zahlmax.....
-
ich geh mal davon aus, dass du lesen kannst und versuch es noch mal:
myself schrieb:
Und dann solltest du es vermeiden, min/max mit "eigenen" Werten zu initialisieren(erst mal hast du ja max nur deklariert und min 0 zugewiesen - max kann also auch 9999 sein - und dein Ergebnis ist falsch. und/oder du gibst nur zahlen > 0 ein und das Minimum ist trotzdem 0)
deshalb nimm doch die erste eingabe für das initialisieren der wertebb
-
unskilled schrieb:
Also mit 10 Werten hab ichs auch nicht kürzer hinbekommen...
Hier braucht man halt STRG+Z um das eof anzugeben... (kA, was man in der Unix-Welt drücken müsste^^)#include <algorithm> #include <iostream> #include <iterator> #include <set> int main() { std::set<int> values; values.insert(std::istream_iterator<int>(std::cin), std::istream_iterator<int>()); std::cout << "min: " << *values.begin() << "; max: " << *values.rbegin() << std::endl; }
Es wäre einfach, wenn es copy_n gäbe - aber aus irgend nem Grund gibts das nicht... Aber hauptsache es gibt 20Milliarden replaces bei string...
#include <algorithm> #include <iostream> #include <iterator> #include <vector> int main() { std::vector<int> values; std::copy_n(std::istream_iterator<int>(std::cin), std::back_inserter(values), 10); //(src, dest, count) std::sort(values.begin(), values.end()); std::cout << "min: " << *values.begin() << "; max: " << *values.rbegin() << std::endl; }
PS:
ist hieran irgendwas falsch?#include <iostream> #include <iterator> #include <set> int main() { std::set<int> values(std::istream_iterator<int>(std::cin), std::istream_iterator<int>()); }
MSVC 9 schrieb:
error C2751: 'std::cin' : the name of a function parameter cannot be qualified
hoffe du hast dein basecap schief auf!?
-
poser schrieb:
hoffe du hast dein basecap schief auf!?
sieht man doch am Code
-
It0101 schrieb:
poser schrieb:
hoffe du hast dein basecap schief auf!?
sieht man doch am Code
Ich habs leider verlegt - und deshalb versuch ich meine Coolness so zum Ausdruck zu bringen - keine gute Idee? ^^
btw: Ich hab doch so gar mehrere anfänger-freundliche Lösungen gepostet...bb