![]() |
c-übungsbeispiel - switch
also ich hab ein übungsbeispiel:
Buchhandlungsprogramm erstellen: Ausgabe: Rabatt in S; EK-preis minus rabatt in S; wenn der Einkauf: über 5000 S ist bekommst du 20% über 3000 - 4999 S bekommst du 14% über 2000 - 3999 S bekommst du 8 % usw. also ich kann das beispiel mit ner if anweisung lösen, aber ich hab mir gedacht, wenn ich ne switch anweisung schreib wärs effizienter. allerdings hab ich noch nicht gelernt wie ne switch syntax ausschaun muss wenn der: ekpreis im bereich VON 5000 BIS 4999 liegt. zb. ek = 3256 ek <=5000 (??? - aber wie ists mit liegt zw. 5000 - 4999 ???) thx btw: n00b erklärung bütte ;) |
geht imo nicht.
die switch syntax: http://www-numi.fnal.gov/offline_sof...ib/switch.html googlen: http://www.google.at/search?q=switch...-8&hl=de&meta= |
hmm... dacht ich mir fast :( , aba da ich noch anfänger bin, weiss ich auch, dass ich noch viel lernen muss. und irgendjemand weiss immer ne 'kürzere' lösung.
btw: ich kann auch googeln ;) |
also in dem fall ginge es mit einem workaround
Code:
switch (price/1000) wenn du eine integerdivison machst (int/int) dann werden die kommastellen weggeschnitten 3000 / 1000 = 3 3999 / 1000 = 3 usw |
thx, werd ich heute abend gleich mal ausprobieren.
|
Sehr gute Lösung mit dem Switch !
Für den Alltag sollte es aber wirklich so aussehen: Code:
if(preis<nicht_rabattfaehige_grenze) rabatt= 0.0; Code:
#define RABATT_STUFEN 5 |
:eek: des is jo so kurz :D
hab mir gedacht ich mach das beispiel halt mal mit verschiedenen anweisungen, dann lernt man wirklich was. ich habs mal mit if gemacht, so jetzt werd ich mal switch ausprobieren und dann guck ich mir deins ganz genau an :) ajo, mal mein code post... habs a bisserl verkürzt, weil ich doch noch draufgekommen bin wie ich von - bis benützen kann. allerdings hab ich den preis: über 3000 - 4999 S bekommst du 14% von 3000 auf 4000 geändert.(glaube da ham die sich verschrieben) Code:
#include <stdio.h> |
*grml* da fällt mir grad auf dass i a unnötige var gmacht hab
:lol: i weiss garnimma wieso i a summe gmacht hab fällt mir grad wieder ein, ich wollte eigentlich des selbe aber anstatt rabatt1-4 mit summe1-4 machen :o |
Zitat:
Code:
if (ekpreis<=999) mit else überprüfst du bis zur ersten zutreffenden, der rest wird übersprungen. außerdem ersparst du dir das ek > n && ek < N, weil ek > n true ist wenn er überhaupt bis dorthin kommt |
naja - warum einfach wenns kompliziert auch geht :D ;)
genau deshalb dacht ich mir, wenn ich dieses beispiel nehme und mal mehrere arten ausprobier, lern ich eher die unterschiede. hatte garnicht daran gedacht, dass alle ifs abgearbeitet werden... primär gings mir darum dass es überhaupt funktioniert. (lern erst seit 20.11.03 an dem c-einführungsskript) für das array beispiel vom kikakater muss ich noch viel lernen :rolleyes: merci leute, für den super input - werd mich anstrengen :) |
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag