public static void Main (string[] args)
{
Console.WriteLine ("Введите первое число");
string a = Console.ReadLine ();
Console.WriteLine (a);
int num1 = Convert.ToInt32 (a);
Console.ReadKey ();
Console.WriteLine ("Введите первое число");
string b = Console.ReadLine ();
Console.WriteLine (b);
int num2 = Convert.ToInt32 (b);
Console.ReadKey ();
Console.WriteLine ("Выбрите знак | + | - | * | / |");
string c = Console.ReadLine ();
string otvet;
switch(c)
{
case 1:
Console.WriteLine("+");
int otvet = num1 + num2;
Console.WriteLine("Ваш ответ: ",otvet);
break;
case 2:
Console.WriteLine("-");
int otvet = num1 - num2;
Console.WriteLine("Ваш ответ: ",otvet);
break;
case 3:
Console.WriteLine("*");
int otvet = num1 * num2;
Console.WriteLine("Ваш ответ: ",otvet);
break;
case 4:
Console.WriteLine("/");
int otvet = num1 / num2;
Console.WriteLine("Ваш ответ: ",otvet);
break;
default:
Console.WriteLine("Я просил знак");
break;
}
Console.ReadKey();
}
}
}

1. в переменную "c" ты считываешь строку, и когда используешь switch, то просто сравнивай со строкой:
switch (c)
{
case "+": ... break;
case "-": ... break;
case "*": ... break;
case "/": ... break;
default: ... break;
}
2. до switch`а ты создал строковую переменную otvet, но после каждого кейса снова пытаешься создать такую же переменную, но уже целочисленного типа. этого делать не нужно. в твоем случае можно обойтись такой записью:
int otvet;
switch (c)
{
case "+": otvet = num1 + num2; break;
case "-": otvet = num1 - num2; break;
case "*": ... break;
case "/": ... break;
default: ... break;
}
а головой кто будет думать? твой код, твоя задача, твоя реализация.. ты должен понимать что делает каждый участок кода и как он его делает, что получает, что возвращает.. иначе зачем браться?!
Ответ от умножения и деления не может быть ВСЕГДА целочисленным.
Это просто Арифметика, ничего личного :)))))
Второе: почитайте на МСДН про Видимость Переменной в языке СиШарп.
Третье: почитайте про Типы Данных в СиШарп.
Вот вы Целочисленное из строки конвертируете, а обратно, наверное, тоже нужно? Это же логично :))))))
Чтобы получить число из строки (целое), нужно int.TryParse(string, out result) или, если там гарантированно число, то просто value = int.Parse(string)