switch case in c#?
Hi Community,
ich häng grad schon wieder an einer IT Aufgabe.
Wir sollen eine Konsolenanwendung erstellen wo ausgeben kann ob man ein Dreieck mit 3 eingegebenen Werten bilden kann. (Wenn jede Seite kleiner ist als die Summe der beiden Anderen zusammen kann man ein Dreieck bilden. Also als Beispiel,wenn a=5 und b=6 dann darf c nicht größer als 11 sein.)Am Schluss soll es dann ausgeben ob ein Dreieck möglich ist.
Könnte man diese Aufgabe mit einem switch case lösen?Da ist nur mein Problem,dass ich keine Idee habe wie ich dem Programm sagen soll, dass es alle Werte einmal durchrechnen soll...Ich habe gerade einfach keine Ideen mehr...
PS:Btw nicht über die ganzen ungenutzten Variaben wundern,hab schon ne Weile da rumprobiert;) Ich nutz C# und Visual Studio falls das wichtig wäre.
Schon mal Danke im Vorraus^^
2 Antworten
Mein Lösungsvorschlag dafür wäre das hier:
using System;
class Program{
private static void Main(string[] args){
//Deklarieren der Variablen für die drei Seiten
int a, b, c;
//Abfragen und Umwandeln der Eingabe inkl. rudimentärer Fehlerbehandlung
do{ Console.Write("a="); }while(!int.TryParse(Console.ReadLine(), out a));
do{ Console.Write("b="); }while(!int.TryParse(Console.ReadLine(), out b));
do{ Console.Write("c="); }while(!int.TryParse(Console.ReadLine(), out c));
//Ermitteln des höchsten der drei Werte
int max = Math.Max(Math.Max(a, b), c);
//Berechnen und Ausgeben des Ergebnises
Console.WriteLine(
//Das Formatmuster für die Ausgabe
"({0}|{1}|{2}) ist {3}ein gültiges SSS-Dreieck.",
//Die drei Seitenlängen (diese nehmen die Plätze der Platzhalter 0, 1 und 2 ein)
a, b, c,
//Falls die Differenz der Summe der drei Seiten und der längsten Seite kleiner oder gleich der längsten Seite ist, handelt es sich nicht um ein gültiges SSS-Dreieck, daher wird in der Ausgabe der Platzhalter 3 durch ein "k" (nimm "ein" und setze ein "k" davor, schon hast du, eine sinnvolle Satzstruktur vorausgesetzt, die Aussage negiert) ersetzt, andernfalls durch einen leeren String.
(((a+b+c) - max) > max) ? "" : "k"
);
}
}
Aber nicht einfach nur kopieren, sondern auch verstehen, Okay? ^^
z.b. könnte man es so lösen :
die drei werte sortieren , und dann einfach gucken ob die beiden kleineren werte addiert <= des größten wert ist .
also maximal 4 ifs brauchst du da
if a>b -> tauschen
if b>c -> tauschen
if a>b -> tauschen
if (a+b < c ) jo geht
else nö geht nicht
Danke für deine Antwort^^Ich weiß nicht ob das jetzt ne doofe Frage ist, aber wie genau meinst du das mit Werte tauschen?
a wird zu b , b wird zu a , brauchste einen zwischen speicher z.b. z ;)
ergo
z = a;
a = b:
b = z;
ok...sorry vielleicht steh ich grad echt auf m Schlauch.Wie genau soll ich das machen😅Kannst du vielleicht ne kurze Codezeile schreiben?
oh sorry hast ja schon gemacht🙈, habs bloss noch nicht gesehen weils noch nicht aktualisiert hatte...
der doppelunkt in der zweiten zeile ist natürlich ein semikolon ;)
Jo vielen Dank^^