elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con problema básico lenguaje C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con problema básico lenguaje C.  (Leído 3,824 veces)
Shett

Desconectado Desconectado

Mensajes: 5


Si necesitas ayuda avisame


Ver Perfil
Ayuda con problema básico lenguaje C.
« en: 15 Noviembre 2016, 03:30 am »

Bueno la verdad trate de hacerlo hasta donde pude, me cuesta entender el while (se que tengo que volver a leer la variable pero nose en donde)  todavía.Me gustaría que me ayuden a completarlo(para entenderlo),  y también quería saber¿esta bien la parte del vector para mostrar el total?. Muchas gracias. Si no entienden algo de lo que hice me avisan.

Código
  1. /*En una casa de ropa se ofrece tres prendas en promocion. Las tres prendas posibles con sus repectivos precios son:
  2. 1- Camisa, la cual cuesta $400.
  3. 2-Pantalon, el cual cuesta $1000.
  4. 3-Campera, la cual cuesta $1500.
  5.  
  6. De acuerdo a la opcion elegida tenemos la posibilidad de elegir la promocion para dicha opcion o simplemente tomar solo la opcion elegida.
  7.  
  8.   -Camisa.
  9.    a) Camisa+remera ($200 mas).
  10.    b) Camisa sola.
  11.    
  12.     -Pantalon.
  13.     a)Pantalon+medias ($100 mas).
  14.   b) Pantalon solo.
  15.  
  16.   -Campera.
  17.    a)Campera+camisa ($200 mas):
  18.     b) Campera sola.
  19.    
  20.     Informar el precio final de acuerdo a las opciones elegidas, sumando los adicionales correspondientes segun la promocion seleccionada. Esto se debera almacenar en un vector de 3 posiciones que contendra los saldos totales de las
  21.     opciones. Asi mismo se informara por separado a cuanto asciende el saldo total de la compra.*/
  22.  
  23.  
  24.  
  25.  
  26.     #include<stdio.h>
  27.     #include<conio.h>
  28.  
  29.     int main (){
  30.  
  31.     int cat=0,opc=0,vec[3];
  32.     char c;
  33.  
  34.     printf ("\n¿Desea realizar una nueva compra o adquirir otro producto? Presione la tecla s para continuar.");
  35.     scanf ("%c",&c);
  36.  
  37.         while (c=='s')
  38.         {
  39.  
  40.  
  41.  
  42. printf ("\t\tTienda de ropa.");
  43.     printf ("\nCatalogo de productos.");
  44.     printf ("\n Seleccione la opcion que desee a continuacion: \n 1.Camisa. \n2.Pantalon. \n3.Campera.");
  45.  
  46.     switch (cat)
  47.     {
  48.     case 1: printf ("\n La opcion elegida posee la siguiente promocion: Camisa+remera ($200 mas), para seleccionar la promocion presione la tecla 1, y cualquier otra tecla para el producto solo.");
  49.             scanf ("%i",&opc);
  50.             if(opc==1)
  51.             {
  52.             vec[1]=600;
  53.  }
  54.  else
  55.  {
  56.   vec[1]=400;
  57.  }
  58.     break;
  59.  
  60.     case 2: printf ("\n La opcion elegida posee la siguiente promocion: Pantalon+medias ($100 mas), para seleccionar la promocion presione la tecla 1, y cualquier otra tecla para el producto solo.");
  61.             scanf ("%i",&opc);
  62.             if(opc==1)
  63.             {
  64.             vec[2]=1100;
  65.  }
  66.  else
  67.  {
  68.   vec[2]=1000;
  69.  }
  70.     break;
  71.     case 3: printf ("\n La opcion elegida posee la siguiente promocion: Campera+camisa ($200 mas), para seleccionar la promocion presione la tecla 1, y cualquier otra tecla para el producto solo.");
  72.             scanf ("%i",&opc);
  73.             if(opc==1)
  74.             {
  75.             vec[3]=1700;
  76.  }
  77.  else
  78.  {
  79.   vec[3]=1500;
  80.  }
  81.     break;
  82.  
  83.        default: printf ("\nOpcion ingresada invalida");
  84.  
  85.  
  86. }
  87.  
  88. }
  89.  
  90.      int tot=0;
  91.  
  92.     tot=vec[1]+vec[2]+vec[3];
  93.     printf ("El total a pagar es de:$%i",tot);
  94.  
  95.  
  96.     getch ();
  97.     return 0;
  98. }

MOD: Etiqueta GeSHi.


« Última modificación: 15 Noviembre 2016, 03:55 am por MCKSys Argentina » En línea

Beto Ventura

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Ayuda con problema básico lenguaje C.
« Respuesta #1 en: 15 Noviembre 2016, 07:08 am »

Un consejo, que uses nombres de variables más claro. Si tu código es autocomentado resulta más rápida la tarea de depuración.
Te dejo este video que espero te sirva para despejar tus dudas sobre el bucle while



¿esta bien la parte del vector para mostrar el total?

Un vector, arreglo o array es una variable que contiene elementos del mismo tipo uno consecutivo al otro, comenzando con su primer elemento en la posición 0. Acá en tu programa vos estás declarando un arreglo del tipo entero de 3 elementos, al final de tu programa sumas todos los elementos y guardas ese valor en la variable "tot". El error en esa parte de tu programa es que estás sumando un elemento de más que no corresponde a tu arreglo.
La correción seria la siguiente:

Código
  1. tot= vec[0]+vec[1]+vec[2];

También tenes el mismo error dentro de los case del switch. Básicamente, tene en cuenta que la primer posición siempre es 0  y no 1, y que la ultima posición del arreglo, en este caso, seria 2 y no 3.

Por último hay un par de errores para mi gusto que tienen que ver con la manera en la que escribís tu código, pero es porque yo personalmente soy medio hincha bolas con unas cosas jeje, si querés hablame por mensaje privado y te las comento. Es mejor que las corrijas desde temprano así no te mal acostumbras.[/pre]


En línea

Shett

Desconectado Desconectado

Mensajes: 5


Si necesitas ayuda avisame


Ver Perfil
Re: Ayuda con problema básico lenguaje C.
« Respuesta #2 en: 15 Noviembre 2016, 12:11 pm »

Bueno muchas gracias por contestar cuando llegue a mi casa arreglo eso y voy a ver si logro hacer funcionar la parte del while osea el concepto lo tengo pero me confundo al aplicarlo.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con problema básico lenguaje C.
« Respuesta #3 en: 15 Noviembre 2016, 16:09 pm »

Código
  1. int cat=0,opc=0,vec[3];
  2.     char c;
  3.  
  4.     printf ("\n¿Desea realizar una nueva compra o adquirir otro producto? Presione la tecla s para continuar.");
  5.     scanf ("%c",&c);
  6.  
  7.         while (c=='s')

dentro del while alguna vez le cambias el valor a la variable "c"?
-qué pasa si nunca se lo cambias?
-cómo se lo cambiaste originalmente y como tienes que cambiarlo ahora?
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Shett

Desconectado Desconectado

Mensajes: 5


Si necesitas ayuda avisame


Ver Perfil
Re: Ayuda con problema básico lenguaje C.
« Respuesta #4 en: 15 Noviembre 2016, 18:43 pm »

Código
  1. int cat=0,opc=0,vec[3];
  2.     char c;
  3.  
  4.     printf ("\n¿Desea realizar una nueva compra o adquirir otro producto? Presione la tecla s para continuar.");
  5.     scanf ("%c",&c);
  6.  
  7.         while (c=='s')

dentro del while alguna vez le cambias el valor a la variable "c"?
-qué pasa si nunca se lo cambias?
-cómo se lo cambiaste originalmente y como tienes que cambiarlo ahora?


No nunca le cambio el valor a c.
   -Yo suponía que si no se lo cambiaba por ejemplo ingresaba una n, salia del bucle y del programa pero creo que no es así.
Y la otra pregunta no la entendí. Perdón por mi ignorancia.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con problema básico lenguaje C.
« Respuesta #5 en: 15 Noviembre 2016, 18:52 pm »

Citar
No nunca le cambio el valor a c.
   -Yo suponía que si no se lo cambiaba por ejemplo ingresaba una n, salia del bucle y del programa pero creo que no es así.
Y la otra pregunta no la entendí. Perdón por mi ignorancia.

el bucle valora "c", si "c" no deja de ser 's' jamas saldrá

si cambias c


Código
  1. char c; //<-declaras "c"
  2.  
  3.     printf ("\n¿Desea realizar una nueva compra o adquirir otro producto? Presione la tecla s para continuar.");
  4.     scanf ("%c",&c); //<-cambias "c" por un valor ingresado por el usuario
  5.  
  6.         while (c=='s') //<- se repite hasta que "c" deje de ser 's'
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Shett

Desconectado Desconectado

Mensajes: 5


Si necesitas ayuda avisame


Ver Perfil
Re: Ayuda con problema básico lenguaje C.
« Respuesta #6 en: 15 Noviembre 2016, 19:39 pm »

el bucle valora "c", si "c" no deja de ser 's' jamas saldrá

si cambias c


Código
  1. char c; //<-declaras "c"
  2.  
  3.     printf ("\n¿Desea realizar una nueva compra o adquirir otro producto? Presione la tecla s para continuar.");
  4.     scanf ("%c",&c); //<-cambias "c" por un valor ingresado por el usuario
  5.  
  6.         while (c=='s') //<- se repite hasta que "c" deje de ser 's'
Perdon por mi ignorancia pero ¿te referis al nombre de la variable?
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con problema básico lenguaje C.
« Respuesta #7 en: 15 Noviembre 2016, 19:46 pm »

lee el comentario en ese ultimo codigo...

no, no puedes cambiarle el nombre a una variable... al decir cambiar, es cambiar el contenido
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines