Código:
void exito (produc prod, provee prov, int p_prod, int p_prov)
{
cout << endl << "Exito: " << endl;
for (int i=0; i< p_prod-1; i++)
{
if (prod[i].sto_ac < prod[i].sto_min)
if ((prod[i].sto_ac - prod[i].sto_min) < (prod[i+1].sto_ac - prod[i+1].sto_min))
cout << prod[i].cod;
}
}
creo que el error esta aqui:
if ((prod[i].sto_ac - prod[i].sto_min) < (prod[i+1].sto_ac - prod[i+1].sto_min))
cout << prod[i].cod
estas comparando un producto con el siguiente. es decir comparas el primero con el segundo y el que tenga mas diferencia lo imprimes, con lo cual puedes imprimir varias veces los "cod" de los productos.
pero a ti solo te piden un producto el que tenga mas diferencia
Cita: y se devuelve como resultado el producto cuya diferencia sea máxima.
por lo que tendrias que coger el primer producto (me refiero siempre a la diferencia ya me entiendes) guardarlo en un auxiliar e ir comparando con el siguiente, si es mayor el siguiente, lo guardas en el auxiliar. lo comparas con el tercero, (imaginate que es menor) pues no haces nada, pasas al cuarto.
de manera que al final te quedas con el producto que mayor diferencia tiene, y lo imprimes, el codigo o lo que sea.