Hola.
No, no vas bien.
Nada más empezar, tienes un bucle infinito
do
{
Console.WriteLine("Ingrese numero");
numerIngre = Console.ReadLine();
} while (respuesta == "si");
Esto se repite mientras respuesta sea igual a "si".
Pero como dentro del bucle, en ningún momento se altera el valor de respuesta, pues su valor SIEMPRE va a ser "si", así que el bucle se va a repetir infinitamente.
Luego, a parte de esto, eso de un switch que pregunta por "a", "b", "c"...
¿Por qué? ¿Por que así se enumeran las tareas en el enunciado?
// a) La cantidad de números positivos.
//b) La cantidad de números negativos.
// c) La cantidad de números pares.
Eso no tiene nada que ver con la lógica que ha de seguir el programa.
Ni pintan nada esos bucle for que van de 0 a 100..
La lógica a seguir sería:
- Pedir número.
- Si no es 0, comprobar si es negativo o positivo.
Si es negativo se incrementa un contador de negativos, si es positivo pues se incrementa un contador de positivos
-Comprobar si es par o impar e incrementar los contadores correspondientes.
- Preguntar si se quiere continuar si/no
-Repetir todo esto en un bucle mientras la respuesta a continuar sea "si".
- Cuando la respuesta sea "no", el bucle termina y entonces se muestra en pantalla los valores de los contadores.
El código podría ser como el que pondré a continuación.
Pruébalo, revisa los comentarios, asegurate de que entiendes cada línea, cada instrucción...
Cualquier cosa que no entiendas, o te parezca extraña o lo que sea, no dudes en preguntarlo y te lo explicaremos.
Un saludo.
static void Main(string[] args)
{
//contadores
int contPares = 0, contImpares = 0, contPositivos = 0, contNegativos = 0;
//Variable para recoger lectura por teclado
int valor;
//Variable para consultar si desea continuar
string respuesta;
do
{
Console.Clear();
//Pedimos valor
Console.Write("Introduzca valor numerico: ");
valor = int.Parse(Console.ReadLine());
//Si no es un 0, comprobamos si es positivo o negativo
if (valor != 0)
{
if (valor > 0) //Positivo
contPositivos++;
else //Negativo
contNegativos++;
}
//Ahora comprobamos si es par. Un número es par si al dividir entre 2, su resto es 0 (usamos operador módulo)
if (valor % 2 == 0) //Es par
contPares++;
else //Es impar
contImpares++;
//Evaluaciones completadas, preguntamos si quiere introducir otro número
Console.Write("\nDesea ingresar otro número?[si/no]: ");
respuesta = Console.ReadLine();
} while (respuesta.Equals("si"));
//Usuario ha terminado de ingresar valores. Mostramos resultados
Console.Clear();
Console.WriteLine("Numeros POSITIVOS ingresados: " + contPositivos);
Console.WriteLine("Numeros NEGATIVOS ingresados: " + contNegativos);
Console.WriteLine("Numeros PARES ingresados: " + contPares);
Console.WriteLine("Numeros IMPARES ingresados: " + contImpares);
Console.WriteLine("\n\t\tFIN DE PROGRAMA");
}
}