C# :: Aufgabe #181
6 Lösungen

Kleine Variablenspielerei
Anfänger - C#
von kjaenke
- 03.07.2017 um 15:05 Uhr
Schreibe ein Programm das zwei Zahlen entgegen nimmt und jeweils in eine Variable speichert.
Tausche die Werte der Variablen ohne weitere Variablen zu definieren.
Es sind im ganzen Programm nur die zwei vorher definierten Variablen erlaubt!
Viel Spaß :)
Tausche die Werte der Variablen ohne weitere Variablen zu definieren.
Es sind im ganzen Programm nur die zwei vorher definierten Variablen erlaubt!
Viel Spaß :)
Lösungen:

using System; using static System.Console; namespace zahlentausch_181 { class Program { static void Main() { int[] input = new int[2]; do { bool[] bo_input_ok = new bool[] { false, false }; while (!bo_input_ok[0]) { "Bitte zahl_1 eingeben: ".Message(); bo_input_ok[0] = int.TryParse(ReadLine(), out input[0]); } while (!bo_input_ok[1]) { "Bitte zahl_2 eingeben: ".Message(); bo_input_ok[1] = int.TryParse(ReadLine(), out input[1]); } input = input.tausche(); ("zahl_1: " + input[0].ToString() + Environment.NewLine + "zahl_2: " + input[1].ToString()).MessageLine(); } while (!("again? exit ESC".EndMessage().Key == ConsoleKey.Escape)); } } public static class MyExtensions { public static void Message(this string s) => Write(s); public static void MessageLine(this string s) => WriteLine(s); public static ConsoleKeyInfo EndMessage(this string s) { s.MessageLine(); return ReadKey(true); } public static int[] tausche(this int[] input) { int[] result = new int[2]; input.CopyTo(result, 0); result[0] += result[1]; result[1] = result[0] - result[1]; result[0] -= result[1]; return result; } } }
Da es sich hier um Zahlen handelt gehe ich davon aus dass sowas erwartet wird :).
C#-Code

namespace A181_Variablenspielerei { class Program { static void Main(string[] args) { int a = 14; int b = 21; Tauschen(ref a, ref b); } static void Tauschen(ref int a, ref int b) { b += a; a = b - a; b = b - a; } } }

using System; public class Program { public static void Main() { int a = 5; int b = 10; new Action<int, int>((xa, xb) => {a = xb;b = xa;})(a, b); } }

int a, b; Console.WriteLine("Gib die erste Zahl ein:"); a =Convert.ToInt32( Console.ReadLine()); Console.WriteLine("Gib die zweite Zahl ein:"); b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Deine eingaben sind: {0} und {1}", a, b); Console.WriteLine("Die Werte der Variablen werden nun ohne neue Variable vertauscht."); b = b + a; a = b - a; b = b - a; Console.WriteLine("Die neuen Werte sind {0} und {1}", a, b); Console.ReadLine();
Quick 'n' dirty ab C# 7.0 :)
C#-Code

using System; namespace VariablenTausch { class Program { static void Main(string[] args) { try { int a = Convert.ToInt32(args[0]); int b = Convert.ToInt32(args[1]); Console.WriteLine("a = {0}\nb = {1}\n", a, b); (a, b) = (b, a); // System.ValueTuple Console.WriteLine("a = {0}\nb = {1}", a, b); } catch(Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace übung181 { class Program { static void Main(string[] args) { int c = Convert.ToInt32(Console.ReadLine()); int x = Convert.ToInt32(Console.ReadLine()); x = x + c; c = x - c; x = x - c; Console.WriteLine(c); Console.WriteLine(x); Console.ReadKey(); } } }