Sí el calculo del subtotal porque no lo haces al volver de la llamada a la función? Es decir, yo haría algo así:
#include <stdio.h>
#include <stdlib.h>
void Listado(char palabra[6], float n1,int n2);
int main()
{
int n2,desc,subtotal;
float n1;
char prod3[6]="prod3";
char prod2[6]="prod2";
char prod1[6]="prod1";
char palabra[6];
printf("Ingrese nombre del producto:"); printf("Ingrese precio unitario:"); printf("Ingrese cantidad necesitada:");
printf("| Producto: %s \t\n|, palabra); printf("| Cantidad: %d \t\n|, n2);
printf("| P.unitario: %0.2f \t\n|, n2); desc = Listado(prod1, n1, n2);
printf("| Descuento: %d\t\n|, desc);
printf("Subtotal: %d\t\n", (val1
*val2
)-desc
);
//return 0;
}
//--------------Descuento PROD1--------------------//
int Listado(char pala[6], float val1,int val2)
{
int desc,subtotal;
char prod3[6]="prod3";
char prod2[6]="prod2";
char prod1[6]="prod1";
{
desc=(val1*val2*10)/100;
subtotal=(val1*val2)-desc;
}
else if(strcmp(pala
,prod2
)==0) {
desc=(val1*val2*10)/100;
subtotal=(val1*val2)-desc;
}
{ subtotal=val1*val2; }
return desc;
}
Por ejemplo podrías hacerlo así, en C que yo sepa si se pueden pasar los parámetros por referencia, pero si es algo que todavía no has visto creo que sería mejor hacer algo así como lo que te he puesto.
Saludos.