en C que yo sepa si se pueden pasar los parámetros por referencia
En C no se pueden pasar parámetros por referencia como en C++ utilizando &, para hacerlo hay que pasar un puntero y modificar el valor al que apunta, pongo un ejemplo con este ejercicio
Código
#include <stdio.h> #include <stdlib.h> #include <string.h> /* * Función que calcula el descuento y el subtotal de un producto a partir de su precio unitario y la cantidad introducida * Devuelve 1 si existe el producto, 0 en caso contrario */ int listado(char palabra[], float, int, float*, float*); int main() { int cant; float precio, *desc, *subtotal; char palabra[6]; if(listado(palabra, precio, cant, desc, subtotal) == 1) printf("| Producto: %s \t\n| Cantidad: %d \t\n| P.unitario: %0.2f \t\n| Descuento: %0.2f \t\n| Subtotal: %0.2f \t\n", palabra, cant, precio, *desc, *subtotal); else return 0; } /* * Función que calcula el descuento y el subtotal de un producto a partir de su precio unitario y la cantidad introducida * Devuelve 1 si existe el producto, 0 en caso contrario */ int listado(char pala[6], float precio, int cant, float *desc, float *subtotal) { { *desc = (precio*cant*10)/100; *subtotal = ((precio*cant)-(*desc)); return 1; } else { *desc = 0; *subtotal = precio*cant; return 1; } else return 0; }
Saludos