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)