Tienes que encerrar todo el proceso en un bucle.
En c tienes dos tipos de bucles: for y while.
En mi opinión for se debe emplear cuando se sabe el número de iteraciones del bucle... recorrer un vector por ejemplo, mientras que los while se deben emplear el resto de casos, es decir, cuando el número de repeticiones es indeterminado.
En este caso, dado que a priori no puedes saber cuántos elementos va a querer introducir el usuario, deberías usar un while.
El bucle while tiene dos variantes:
// Este bucle comprueba, al principio de cada iteracion, si se cumple la condicion.
// Se repite mientras se cumpla la condicion
while ( condicion )
{
// contenido
}
// Este bucle ejecuta el contenido al menos una vez, dado que la condicion se
// comprueba al final de cada iteracion.
// Nota que esta configuracion termina con ';' despues del while
do
{
// contenido
} while ( condicion );
En tu caso, como la pregunta la haces al final, podrías poner un bucle do-while. Puedes usar también el otro... pero tendrías que asegurarte de la condición da true en la primera pasada.
int otroProducto;
do
{
// Se recopilan datos sobre el producto
// Se calcula su beneficio, etc.
printf ( "¿Quieres seguir introduciendo productos? " ); // recuperar el dato del teclado y comprobar si hay que continuar o no.
// si hay que meter otro producto, otroProducto debe valer 1,
} while ( otroProducto == 1 );
Con la configuración que te he puesto arriba el programa va a estar pidiendo datos hasta que 'otroProducto' sea diferente de 1.
Nota: Tu código tiene un error:
acomulado = beneficio + otroProducto;
Si 'acomulado' ( se escribe acumulado ) debe almacenar el beneficio total no tiene sentido que en esa ecuación aparezca 'otroProducto', ya que esa es una variable que usas para otras cosas.
si quieres llevar un total de beneficios es tan sencillo como esto:
acomulado = acomulado + beneficio;
// o en version simplificada
acomulado += beneficio;
Nota2: otroProducto lo estás usando para almacenar números o valores ??
al principio compruebas si es igual a 1... y al final almacenas un caracter... y compruebas si es 's'... no tiene sentido.
Si usas otroProducto para almacenar caracteres... ciñete a caracteres.
Con todos estos cambios el código resultante queda más o menos así:
char otroProducto;
do
{
printf("Unidades vendidas: "); beneficio = (venta-compra)*unidades;
printf("Beneficio: %d", beneficio
); acomulado += beneficio;
printf("\nBeneficio acomulado: %d", acomulado
);
printf("\nQuieres introducir otro producto (s/n)? "); getch("%c", &otroProducto
); } while ( otroProducto == 's' );
Esta solución no funciona con mayúsculas, pero es una mejora que puedes plantearte.