Estoy practicando los bucles for y me surgió un "problema" que me saco de onda:
No encuentro como explicar mi "problema" sin antes mostrar la salida...
Salida:
i vale 0
i vale 1
i vale 2
i vale 3
i vale 4
imprime_i() INICIALIZADA
i vale 5
y aqui el codigo:
Código
#include <stdio.h> void imprime_i(int x); int main(){ int i, a = 5; for(i=0; i < a; i++){ } imprime_i(i); return 0; } void imprime_i(int x){ i vale %d\n", x); }
¿Por que se imprime 0 en el primer ciclo si se supone que se incrementa 1 y después se imprime?

¿No se supone que tendría que valer 4 al final?

Aprovechando este post tengo una pregunta más:
Hice un programa que pide un valor numérico, pero al introducir una letra, se vuelve a repetir (como si fuera un bucle infinito) ¿como puedo hacer una excepción para controlar eso?
Gracias de antemano (: