Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Vilguardian en 11 Mayo 2018, 03:58 am



Título: Problema con errores compilacion
Publicado por: Vilguardian en 11 Mayo 2018, 03:58 am
Estudio sistemas hace poco y no se mucho sobre C++, me han encargado un trabajo para la facultad, lo hice pero me da error al compilar, por favor cualquiera que pueda ayudarme acá les dejo el código a ver si me dicen que esta mal.


Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main() {
  6. string nombre_y_apellido[30],rubro,fdp,tdc,banco;
  7. int DNI, rubro1, tdc1,b1;
  8. float vdv=0, adelanto=0, subt=(vdv-adelanto), desc=0, rec=0, total=0;
  9. cout<<"ingrese nombre y apellido del cliente: ";
  10. cin>>nombre_y_apellido;
  11. cout<<"ingrese el DNI del cliente";
  12. cin>>DNI;
  13. cout<<"ingrese el rubro del vehiculo";
  14. cin>>rubro1;
  15. switch(rubro1){
  16. case 1:rubro="auto";
  17. break;
  18. case 2:rubro="camioneta";
  19. break;
  20. case 3:rubro="SUBs";
  21. break;
  22. case 4:rubro="camion";
  23.    break;
  24. }
  25. cout<<"por favor ingrese el valor del vehiculo";
  26. cin>>vdv;
  27. cout<<"ingrese el monto del adelanto que se desea abonar";
  28. cin>>adelanto;
  29. cout<<"por favor elija la forma de pago en la que se decea pagar el vehiculo"<<endl;
  30. cout<<"en caso de querer pagar al contado en pesos precione:'p', en el caso de querer comprar al contado en dolares precione: 'd' y en el caso de querer comprar con cheque precione: 'h'";
  31. cin>>fdp;
  32. switch(fdp){
  33. case 'p':{if (rubro1==1||2||3)
  34. desc=(vdv*0.15);
  35. total=(subt-desc);
  36. if (rubro1==4)
  37. desc=0;
  38. total=subt;}
  39. break;
  40. case 'd':desc=0;
  41. total=subt;
  42. break;
  43. case 'h':cout<<"elija el tipo de cheque"<<endl<<"si es propio precione:1, si es posDatado precione:2 y si es de terceros precione:3";
  44. cin>>tdc1;
  45. {if (tdc1==1)
  46. tdc="Propio";
  47. if (tdc1==2)
  48. tdc="PosDatado";
  49. if (tdc1==3)
  50. tdc="De Terceros";
  51. cout<<"elija su banco: "<<endl<<"si es de banco BERSA precione:1 , si es de banco FRANCES precione:2 , si es de banco GALICIA precione: 3 y si es de otro banco precione:4";
  52. cin>>b1;
  53. if (b1==1)
  54. banco="BERSA";
  55. if (b1==2)
  56. banco="FRANCES";
  57. if (b1==2)
  58. banco="GALICIA";
  59. if (b1==4)
  60. banco="Otros";}
  61. rec=(vdv*0.20);
  62. total=(subt+rec);
  63. break;}
  64. cout<<"DNI:"<<DNI<<"       "<<"Cliente:"<<nombre_y_apellido<<endl;
  65. cout<<"Rubro del Producto:"<<rubro<<"      "<<"Valor del vehiculo:$"<<vdv<<endl;
  66. cout<<"Forma de Pago:"<<fdp<<endl;
  67. cout<<"Adelanto:$"<<adelanto<<"       "<<"subtotal:$"<<subt<<endl;
  68. cout<<"Descuento:$"<<desc<<"       "<<"recargo:$"<<rec<<endl;
  69. cout<<"total a Pagar"<<total;
  70.  
  71.  

[MOD] Usar etiquetas GeSHi para publicar código.


Título: Re: Ayuda pls :(
Publicado por: engel lex en 11 Mayo 2018, 05:21 am
el codigo es complicado de leer y no tiene mucho sentido tu uso de llaves { }


tu problema está en las llaves...

las sentencias de control de flujo (if, for, while) aunque no sea necesario colocarle llaves siempre se le deben poner para mejorar la legibilidad (como siempre digo, al no ponerle llaves a nadie le estás haciendo un bien, ni es más eficiente, ni es más legible)

por otro lado case no lleva llaves

main no tiene return (siempre debe tener return 0;) y tampoco tiene la llave de cierre


cuando pidas ayuda por errores de compilación siempre deja el error de compilación, no esperes que uno lo adivine, ya que así mismo puede ser un componente mal instalado, una librería no likeada u otra cosa)



el titulo del tema fue modificado, el que tenía de ninguna manera describía el problema, así mismo el código fue puesto en etiquetas GeSHi para legibilidad


Título: ya encontre el error
Publicado por: estela0910 en 11 Mayo 2018, 11:28 am
solo tuve aue agregar unas lineas mas muchas gracias