0 Daumen
373 Aufrufe

Frage:

C# Programmierproblem - Wie schaffe ich es, dass das Programm die verschiedenen Seitenlängen richtig zu ordnet? Aufgabenstellung ist, das für die 3 einzugebenenden Seitenlängen eines Dreiecks festgestellt wird, ob es sich um ein gleichseitiges, gleichschenkeliges, sonstiges oder kein Dreieck handelt.

Code:

          int a, b, c;
          Console.Write("Bitte Seite 1 eingeben:");
          a = int.Parse(Console.ReadLine());
          Console.Write("Bitte Seite 2 eingeben:");
          b = int.Parse(Console.ReadLine());
          Console.Write("Bitte Seite 3 eingeben:");
          c = int.Parse(Console.ReadLine());

        if ((a > 0) && (b > 0) && (c > 0))
          {
              if ((a+b > c) && (a+c > b) && (b+c > a))
              { Console.WriteLine("sonstiges Dreieck");

                  if ((a == b) && (b == c))
         Console.WriteLine("gleichseitiges Dreieck");
                  
                  if (( a == b) || (b == c) || (a ==c))
                      Console.WriteLine("gleichschenkeliges Dreieck");
              
                  else
                  Console.WriteLine("kein Dreieck");

Avatar von

if (a == b & b == c)
          {
              Console.WriteLine("gleichseitiges Dreieck");
          }

          else if ((a == b) | (b == c) | (a == c))
          {
              Console.WriteLine("gleichschenkeliges Dreieck");
          }
          else if ((a + b) > c | (b + c) > a | (a + c) > b)
          {
              Console.WriteLine("sonstiges Dreieck");
          }
          else
          {
              Console.WriteLine("kein Dreieck");
          }

Update: mit diesem Code funktioniert, sonstiges, gleichschenkelige und gleichseitiges Dreieck - nur das "kein Dreieck" klappt nicht. Welche Werte muss ich hier zu ordnen, das zB bei 0-0-0 und 12-5-5- die Werte kein Dreieck rauskommt? DANKE :)

Verwende && und || für die Verknüpfung von Bedingungen anstatt & und |. Erstere sind logische Operatoren, letztere sind bitweise Operatoren.

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Problem

Das gegebene C# Programm soll feststellen, ob die drei eingegebenen Seitenlängen eines Dreiecks ergeben und falls ja, den Typ des Dreiecks bestimmen. Der derzeitige Code enthält einige logische Fehler, besonders bei der Einstufung der Dreiecke. Die Bedingungen sind nicht korrekt verschachtelt, was zu fehlerhaften Ergebnissen führt.

Lösung

1. Zuerst überprüfen wir, ob die Seitenlängen positiv sind und das Dreiecksgleichgewicht erfüllen.
2. Wenn die Seitenlängen ein Dreieck bilden, bestimmen wir den Typ.
3. Ein gleichseitiges Dreieck hat alle Seiten gleich.
4. Ein gleichschenkliges Dreieck hat mindestens zwei gleiche Seiten.
5. Ein sonstiges Dreieck hat keine gleichen Seiten.

Korrigierter Code

Hier ist der vollständige neue Code in C#:

csharp
using System;

class Program
{
    static void Main()
    {
        int a, b, c;
        Console.Write("Bitte Seite 1 eingeben: ");
        a = int.Parse(Console.ReadLine());
        Console.Write("Bitte Seite 2 eingeben: ");
        b = int.Parse(Console.ReadLine());
        Console.Write("Bitte Seite 3 eingeben: ");
        c = int.Parse(Console.ReadLine());

        if (a > 0 && b > 0 && c > 0)
        {
            if (a + b > c && a + c > b && b + c > a)
            {
                if (a == b && b == c)
                {
                    Console.WriteLine("gleichseitiges Dreieck");
                }
                else if (a == b || b == c || a == c)
                {
                    Console.WriteLine("gleichschenkeliges Dreieck");
                }
                else
                {
                    Console.WriteLine("sonstiges Dreieck");
                }
            }
            else
            {
                Console.WriteLine("kein Dreieck");
            }
        }
        else
        {
            Console.WriteLine("Seitenlängen müssen positiv sein");
        }
    }
}


Erklärung der Änderungen

1. Eingabeüberprüfung:
- Sicherstellen, dass alle Seitenlängen positiv sind (\(a > 0\), \(b > 0\), \(c > 0\)).

2. Dreiecksungleichungen:
- Sicherstellen, dass die Summe jeder Kombination von zwei Seitenlängen größer ist als die dritte (Dreiecksungleichung).

3. Typüberprüfung:
- Zuerst wird überprüft, ob alle Seiten gleich sind (\(a == b\) und \(b == c\)), um ein gleichseitiges Dreieck zu bestimmen.
- Falls nicht, wird geprüft, ob zwei Seiten gleich sind (\(a == b\) oder \(b == c\) oder \(a == c\)), um ein gleichschenkeliges Dreieck zu bestimmen.
- Andernfalls handelt es sich um ein sonstiges Dreieck.

Ausgabe

Folgende Ausgaben sind möglich:
- "gleichseitiges Dreieck" wenn alle Seiten gleich sind.
- "gleichschenkeliges Dreieck" wenn genau zwei Seiten gleich sind.
- "sonstiges Dreieck" wenn keine Seite gleich ist.
- "kein Dreieck" wenn die Dreiecksungleichung nicht erfüllt ist.
- "Seitenlängen müssen positiv sein" wenn eine der Seitenlängen negativ oder null ist.

Hiermit sollte der Code in der Lage sein, die Seitenlängen korrekt zu ordnen und den Typ des Dreiecks zu bestimmen.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community