Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/09/2012, 08:54
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: donde esta el error en este programa?

Hola sonrasiel.

A golpe de ojo, es errónea la asignacion de la línea 40:
Código C++:
Ver original
  1. litros_de_d = double compuesto_D2(double x, double y);
Estas reproduciendo la declaración de la cabecera de la función y lógicamene no funciona, lo mismo sucede en las líneas 46 y 50.
Debería haber sido algo como:
Código C++:
Ver original
  1. litros_de_d = compuesto_D2(a, b);
No miré en profundidad pero también pareciera que te faltó cerrar alguna llave.

Hay otros detalles que si bién no son errores pueden mejorarse:
La variable litros_de_d, podrías declararla una sola vez.
Las funciones compuesto_D2,D3 y D4 podrían retornar el valor directamente ahorrando una variable, por ejemplo:
Código C++:
Ver original
  1. double compuesto_D1(double x, double y, double z, double q, double r) {
  2.   return x+y+z;
  3. }

Por otro lado, creo que el código podría simplificarse, un ejemplo:
Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void ShowComposite(float,float,float);
  6.  
  7. void main() {
  8.   float a,b,c;
  9.  
  10.   cout << "introduzca litros de A: ";
  11.   cin >> a;
  12.   cout << endl << "introduzca litros de B: ";
  13.   cin >> b;
  14.   cout << endl << "introduzca litros de C: ";
  15.   cin >> c;
  16.   ShowComposite(a,b,c);
  17. }
  18.  
  19. void ShowComposite(float a, float b, float c) {
  20.   float tot = a+b+c;
  21.   cout << endl;
  22.   cout << "Compuesto resultante: " << tot << " litros" << endl;
  23.   cout.precision(2);
  24.   cout << fixed;
  25.   cout << "Proporcion de A: " << a / tot * 100 << "%" << endl;
  26.   cout << "Proporcion de B: " << b / tot * 100 << "%" << endl;
  27.   cout << "Proporcion de C: " << c / tot * 100 << "%" << endl;
  28.   while(cin.get()!='\n');
  29.   cin.get();
  30. }

Saludos.