C# programozás, számológép?
kezdtem el és most próbálok egy számológépet csinálni.Valaki esetleg eltudná nekem mondani hogy mi a hiba benne,és esetleg ki tudná javítani és elmagyarázni hogy miért nem jó?Én nem tudtam rájönni :(
using System;
public class Program
{
public static void Main()
{
Console.Write("Adja meg a műveletet (+,-,/,*)");
string valasztas = Console.ReadLine();
Console.Write("Adja meg a két számot enterrel elválasztva!");
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int eredmeny = int.Parse(Console.ReadLine());
if (valasztas == "+" )
{
eredmeny = a + b;
}
else if (valasztas == "-" )
{
eredmeny = a - b;
}
else if (valasztas == "/" )
{
eredmeny = a / b;
}
else if (valasztas == "*" )
{
eredmeny = a * b;
}
Console.WriteLine("Az eredmény: " + eredmeny);
Console.ReadLine();
}
}
A hibaüzenet:
Run-time exception (line 13): Input string was not in a correct format.
Stack Trace:
[System.FormatException: Input string was not in a correct format.]
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Int32.Parse(String s)
at Program.Main() :line 13
Valamelyik szám beolvasása során rossz formátumot adtál meg. Mivel int típusú változókban tárolod el a számokat, ezért csak egész számokat tudsz bekérni(kb. -2 milliárd és +2 milliárd között). Tehát nem szerepelhet benne más karakter számon kívül és nem lehet tört szám. Amennyiben törtekkel is szeretnél számolni, akkor tárold el a bekért számokat lebegőpontos változókban (pl. float, double).
A "Adja meg a két számot enterrel elválasztva!" kiírás helyett talán jobban átláthatóbb egy kicsivel, ha az első szám bekérésé előtt azt írod ki pl: "Adja meg az első számot!", a második előtt pedig: "Adja meg a második számot!".
Az eredményt, nem tudom pontosan, miért kéred be. Ha elakarod kerülni a hibakódot, abban az esetben, amikor rossz műveletet ad meg a felhasználó, akkor inkább adj hard codeolva bármilyen értéket az "eredmeny" változónak (pl. 1) deklarációkor.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!