Buenas tardes Mario y gracias por responder, no me había quedado claro el ejercicio, lo he leído con más detenimiento y dejo el código nuevo.
//Programa cálculos con impares02
#include <stdio.h>
#include <stdlib.h>
#define NMAX 19
int obtenerValorParaCalculo();
long resolverSumatorio (int numeroItemsSum);
long resolverProducto (int numeroItemsProd);
int main()
{
int valorParaCalculo=0;
int opcionUsuario = 1;
while (opcionUsuario!=4)
{
printf("\n\n1: Introducir valor\n2: Calcular serie 1+3+5...\n");
printf("3: Calcular serie 1*3*5...\n4: Salir\n\nElija opcion: ");
scanf("%d", &opcionUsuario);
if (opcionUsuario==1)
{
valorParaCalculo = obtenerValorParaCalculo();
}
if (opcionUsuario==2)
{
if (valorParaCalculo!=0)
{
printf("n = %d El valor del sumatorio es: %ld", valorParaCalculo, resolverSumatorio(valorParaCalculo));
}
else
{
printf("No hay un valor para calculo que permita obtener sumatorio 1+3+5+...");
}
}
if (opcionUsuario==3)
{
if (valorParaCalculo!=0)
{
printf("n = %d El valor del producto es: %ld", valorParaCalculo, resolverProducto(valorParaCalculo));
}
else
{
printf("No hay un valor para calculo que permita obtener resultado 1*3*5*...");
}
}
}
return 0;
}
int obtenerValorParaCalculo()
{
int imparElegido = 0;
do
{
printf("\nPor favor introduzca numero entero impar entre 1 y 19: ");
scanf("%d", &imparElegido);
}
while (imparElegido<=0 || imparElegido>NMAX ||imparElegido%2==0);
return imparElegido; // Ejercicios resueltos de programación aprenderaprogramar.com
}
long resolverSumatorio (int valorCalculoSum)
{
int impar = -1;
long resultadoSum =0;
do
{
impar = impar + 2;
resultadoSum = resultadoSum + impar;
}
while (impar < valorCalculoSum);
return resultadoSum;
}
long resolverProducto (int valorCalculoProd)
{
int impar = -1;
long resultadoProd = 1;
do
{
impar = impar + 2;
resultadoProd = resultadoProd * impar;
}
while (impar < valorCalculoProd);
return resultadoProd;
}
Saludos y gracias por tu tiempo.