Frage von tate1999, 35

rechenoperationen in c# berichtigen?

Hallo ich habe seid neuen das Fach Programmierung wir sollen folgenden code berichtigen das das die rechnung funktioniert

Console.Write("Bitte eine Zahl eingeben: "); string x; x = Console.ReadLine(); Console.WriteLine(x + "+" + x + "=" + x + x );

nun kommt z.b wen man 5 eingibt natürlich 55 raus meine idde wäre es jetzt eine neue variable einzufügen und dieser zu zuteilen das x * 2 = die neue variable ist und dann diese neue variable oben stat + x + x einzufügen würde das klappen wenn ja wie danke schon mal im voraus

Antwort
von GustavAT, 7

Es ist völlig egal, ob du x + x oder x * 2 rechnest. Damit die Rechenoperation funktioniert muss x in deinem Fall vom Typ int sein und nicht ein String.

Konvertiere dazu einfach deine Eingabe in einen Integer und führe die Berechnung danach durch. Verwende dazu TryParse und nicht Parse, da im Falle einer ungültigen Eingabe (z.B. ein String) keine Exception geworfen wird.

Hier wäre mein Lösungsvorschlag: http://pastebin.com/QN9jayXm

Die {0}, {1} im WriteLine dienen als Platzhalter für die Werte, die bei der Konsolenausgabe dann an dieser Stelle stehen sollen.

Antwort
von acdxx, 21

Ja, dein Vorschlag ist eine korrekte Lösung. Wichtig ist halt, dass die Berechnung mit einem Integer und nicht mit einem String erfolgt. Deine neue Variable sollte also ein Integer sein.

Um von String nach Integer zu konvertieren, kannst du y = Int32.Parse(x) verwenden. Um das ganze am Ende wieder als String auszugeben y.ToString()

Kommentar von tate1999 ,

Danke :)

Kommentar von tate1999 ,

könntest du es wenn möglich noch einmal mit dem beispiel oben auf schreiben habe noch irgendwo ein fehler .... wäre echt nett danke?

Kommentar von acdxx ,

Wie sieht dein Code denn nun aus?

Kommentar von tate1999 ,
Kommentar von acdxx ,

Die Zeile a=x*2 ist nicht richtig. x ist ja nach wie vor ein String und kann daher nicht mit 2 multipliziert werden. Du könntest daraus a=a*2 machen (denn a enthält aufgrund der Umwandlung dadrüber ja den Zahlenwert von x). Du kannst die Zeile allerdings auch ganz weglassen und die Multiplikation in der Zeile dadrüber einfügen.

Unten in der Ausgabe muss das ganze wieder als String angegeben werden. a ist aber ja ein Integer, daher muss hier das .ToString() angehängt werden.

Kommentar von tate1999 ,

ja endlich vielen dank hätte da vermutlich sonst noch mehere stunden dran gesessen 

Kommentar von acdxx ,

Gern.

Immer gut darauf achten, welche Datentypen eine Funktion oder ein Operator erfordern und die Variablen entsprechend deklarieren oder geeignete Konvertierungen durchführen ;-)

Kommentar von acdxx ,

Ich merke gerade: das .ToString() in der Ausgabe kann man auch weglassen. Hier wird automatisch konvertiert.

Antwort
von tate1999, 23

Die Zeilen des Codes sind verrückt worden denke aber es ist klar wo die absätze sind

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten