tu problema está aqui:
for(i=0; i<TAM; i++){
media += v[i];
}
Ahí lo que estás haciendo es recorrer el vector de 100 elementos v. A menos que introduzcas 100 elementos en ese vector anteriormente, vas a tener un problema de acceder a elementos no declarados, lo cual, va a coger valores bastante... aleatorios.
media = media/TAM;
Por otra parte, tu siempre divides la suma del vector entre 100, aunque no siempre usas 100. Mejor divide por el contador de números que has recogido.
La solución podría pasar por dos opciones:
a) Definirte otro contador, y ese bucle hacer un recorrido desde 0 hasta i :
for(j=0; j<i; j++){
media += v[[b]j[/b]];
}
media/i;
b) o que en el momento que introduces los números, los guardes directamente en media (esta es una opción poco recomendable si luego se les va a dar otro uso a los números, como moda etc):
while((op == 's' || op == 'S') && i < TAM){
printf("Introduce un número: "); scanf("%lf", &[b
]media
[/b
]); i++;
}
media=media/i;