Hallo leute,
erstmal ein kräftiges Hallo von mir :wave:, und Lob:schönes Forum:D
Nun mal zu meiner Frage, eigentlich sind es 2, ich hoffe das ist kein Problem.
Also ich sollte nen Taschenrechner programmieren, als Bewerbungsaufgabe, und nun hab ich mit nem Infostudenten den Text geschrieben nur hat er mir nicht erklärt was er gemacht hat und nun versteh ich den Text nicht und er ist jetz n jahr in canada und ich erreiche ihn nicht. Weiterhin müsste ich noch einbauen dass das Programm zu allererst hochrechnung macht (also z.B. 4^3).
Könnt ihr mir helfen?
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace calculator
{
class Program
{
private static int count = 0;
static void Main(string[] args)
{
string input = null;
List<double> inputList = new List<double>();
double tempNum = 0;
while (true)
{
count = 0;
inputList.Clear();
input = System.Console.ReadLine();
while (count < input.Length)
{
switch (input[count])
{
case '+':
break;
case '-':
count++;
inputList.Add(-1 * readNextNumber(input));
break;
case '*':
count++;
tempNum = inputList[inputList.Count - 1] * readNextNumber(input);
inputList.RemoveAt(inputList.Count - 1);
inputList.Add(tempNum);
break;
case '/':
count++;
tempNum = inputList[inputList.Count - 1] / readNextNumber(input);
inputList.RemoveAt(inputList.Count - 1);
inputList.Add(tempNum);
break;
default:
inputList.Add(readNextNumber(input));
break;
}
count++;
}
count = 0;
double solution = 0;
while (count < inputList.Count)
{
solution += inputList[count];
count++;
}
Console.WriteLine(solution);
}
}
private static double readNextNumber(string input)
{
char temp = input[count];
bool isNegative = false;
while (temp == '-')
{
isNegative = !isNegative;
count++;
if (count < input.Length)
temp = input[count];
else
break;
}
int j = count;
while (temp != '*' && temp != '/' && temp != '+' && temp != '-')
{
j++;
if (j < input.Length)
temp = input[j];
else
break;
}
char[] num = new char[j - count];
input.CopyTo(count, num, 0, j - count);
count = j - 1;
if (isNegative)
return -arr2double(num);
else
return arr2double(num);
}
private static double arr2double (char[] arr)
{
int i = 0;
string stringArr = "";
while (i < arr.Length)
{
stringArr += arr[i];
i++;
}
return Convert.ToDouble(stringArr);
}
}
}
Alles anzeigen