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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Mostrar en forma de lista! [solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar en forma de lista! [solucionado]  (Leído 2,810 veces)
;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Mostrar en forma de lista! [solucionado]
« en: 27 Enero 2012, 16:55 pm »

Hola bueno estaba realizando un programa en  C y necesito mostrar los datos asi.
El tema es que la primera linea la puedo mostrar sin problemas
el tema es mostrar la segunda fila que tiene los guiones y la tercera fila q los resultados vienen de una funcion.

Lo q yo quiero es que me muestre asi centrados los resultados como una lista si alguien me tira una idea o alguna funcion nose, a mi se me ocurrio una matriz pero pensandolo bien nose como mostrar los resultados de la funcion.


       Producto    Cantidad  P.Unitario   Descuento   Subtotal
   --------   --------  ----------      ---------     ---------
   PROD1       1000        1.00          100.00      900.00

Saludos!!

   


« Última modificación: 30 Enero 2012, 14:38 pm por ;c1v!c » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Mostrar matriz en forma de lista!
« Respuesta #1 en: 27 Enero 2012, 17:06 pm »

Para ello puedes utilizar la función printf.

Si no tienes material de referencia de calidad es hora de conseguirlo, una referencia en linea (pero en ingles) sobre salida con formato es Formatted Output.

Por ejemplo con los números enteros puedes utilizar "%Nd" que imprime, en un campo de N caracteres el valor de tipo signed int.

Con los números de punto flotante (float y double) puedes utilizar "%N.Mf" donde N es la anchura del campo y M el numero de decimales a mostrar.

Hay mas opciones, es cuestión de leer y practicar.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Re: Mostrar matriz en forma de lista!
« Respuesta #2 en: 27 Enero 2012, 17:10 pm »

claro si entiendo pero mira este es mi ejemplo!!
probalo y fijate q no salen bien abajo de cada palabra los resultados.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. float prod1 (float n1, float f1);
  6. float prod2 (float n1, float f1);
  7. float subtotal (float n1, float f1, float desc);
  8.  
  9. int main()
  10. {
  11. int i,j;
  12. float PreUni,CantSoli,desc;
  13. char p1[6]="prod1";
  14. char p2[6]="prod2";
  15. char p3[6]="prod3";
  16. char producto[7];
  17. //-------------------CARGAMOS DATOS--------------------//
  18. printf("\tIngrese nombre del producto &#8594; ");
  19. fgets(producto,7,stdin);
  20. if (producto[strlen(producto)-1] == '\n');
  21. producto[strlen(producto)-1] = '\0';
  22. printf("\tIngrese precio unitario &#8594; ");
  23. scanf("%f",&PreUni);
  24. printf("\tIngrese cantidad solicitada &#8594; ");
  25. scanf("%f",&CantSoli);
  26. //-------------------MOSTRAMOS LOS DATOS--------------//
  27.  
  28. if(strcmp(producto,p1)==0)
  29. {
  30. desc=prod1(PreUni,CantSoli);
  31. printf("|| producto | Cantidad | P.Unitario | Desc. | Subtotal ||\n");
  32. printf("|| [%s] | [%0.0f] | [%0.2f] | [%0.2f] | [%0.2f] || \n",producto,CantSoli,PreUni,prod1(PreUni,CantSoli),subtotal(PreUni,CantSoli,desc));
  33. }
  34. else if (strcmp(producto,p2)==0)
  35. {
  36. desc=prod2(PreUni,CantSoli);
  37. printf("|| producto | Cantidad | P.Unitario | Desc. | Subtotal || \n");
  38. printf("|| [%s] | [%0.0f] | [%0.2f] | [%0.2f] | [%0.2f] || \n",producto,CantSoli,PreUni,prod2(PreUni,CantSoli),subtotal(PreUni,CantSoli,desc));
  39. }
  40. else
  41. {
  42. printf("|| producto | Cantidad | P.Unitario | Desc. | Subtotal ||\n");
  43. printf("|| [%s] | [%0.0f] | [%0.2f] | [0.00] | [%0.2f] ||\n",producto,CantSoli,PreUni,CantSoli);
  44. }
  45. return 0;
  46. }
  47. /////---------------------FUNCIONESSSSS----------------///////////
  48. float prod1 (float n1, float f1)
  49. {
  50. return ((n1*f1)*10)/100;
  51. }
  52. float prod2 (float n1, float f1)
  53. {
  54. return ((n1*f1)*15)/100;
  55. }
  56. float subtotal (float n1, float f1, float descu)
  57. {
  58. return (n1*f1)-descu;
  59. }
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Mostrar matriz en forma de lista!
« Respuesta #3 en: 27 Enero 2012, 17:54 pm »

No "sale bien" porque no indicas la anchura del campo "producto" (debes utilizar "%Ns") y si indicas en los demás campos que la anchura es cero (por ejemplo con "%0.0f") es igual a no indicarla.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Re: Mostrar matriz en forma de lista!
« Respuesta #4 en: 30 Enero 2012, 14:36 pm »

Buenisimo!! Muchas gracias la verdad que solucione el problema!!

aca dejo el codigo:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. float prod1 (float n1, float f1);
  6. float prod2 (float n1, float f1);
  7. float subtotal (float n1, float f1, float desc);
  8.  
  9. int main()
  10. {
  11. int i,j;
  12. float PreUni,CantSoli,desc;
  13. char p1[6]="prod1";
  14. char p2[6]="prod2";
  15. char p3[6]="prod3";
  16. char producto[7];
  17. //-------------------CARGAMOS DATOS--------------------//
  18. printf("\tIngrese nombre del producto &#8594; ");
  19. fgets(producto,7,stdin);
  20. if (producto[strlen(producto)-1] == '\n');
  21. producto[strlen(producto)-1] = '\0';
  22. printf("\tIngrese precio unitario &#8594; ");
  23. scanf("%f",&PreUni);
  24. printf("\tIngrese cantidad solicitada &#8594; ");
  25. scanf("%f",&CantSoli);
  26. //-------------------MOSTRAMOS LOS DATOS--------------//
  27.  
  28. if(strcmp(producto,p1)==0)
  29. {
  30. desc=prod1(PreUni,CantSoli);
  31. printf("\n||-----------------------------------------------------------||\n|| producto | Cantidad | P.Unitario | Descuento |  Subtotal  ||\n");
  32. printf("|| [%.5s]  | %8.0f | %10.2f | %9.2f | %10.2f || \n||-----------------------------------------------------------||\n",producto,CantSoli,PreUni,prod1(PreUni,CantSoli),subtotal(PreUni,CantSoli,desc));
  33. }
  34. else if (strcmp(producto,p2)==0)
  35. {
  36. desc=prod2(PreUni,CantSoli);
  37. printf("\n||-----------------------------------------------------------||\n|| producto | Cantidad | P.Unitario | Descuento |  Subtotal  || \n");
  38. printf("|| [%.5s]  | %8.0f | %10.2f | %9.2f | %10.2f || \n||-----------------------------------------------------------||\n",producto,CantSoli,PreUni,prod2(PreUni,CantSoli),subtotal(PreUni,CantSoli,desc));
  39. }
  40. else
  41. {
  42. printf("\n||-----------------------------------------------------------||\n|| producto | Cantidad | P.Unitario | Descuento |  Subtotal  ||\n");
  43. printf("||  [%.5s]  | %8.0f | %10.2f |   0.00    | %10.2f ||\n||-----------------------------------------------------------||\n",producto,CantSoli,PreUni,CantSoli);
  44. }
  45. return 0;
  46. }
  47. /////---------------------FUNCIONESSSSS----------------///////////
  48. float prod1 (float n1, float f1)
  49. {
  50. return ((n1*f1)*10)/100;
  51. }
  52. float prod2 (float n1, float f1)
  53. {
  54. return ((n1*f1)*15)/100;
  55. }
  56. float subtotal (float n1, float f1, float descu)
  57. {
  58. return (n1*f1)-descu;
  59. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mostrar registros de una tabla con ADODC en forma aleatoria!!
Programación Visual Basic
1Ale 2 2,267 Último mensaje 11 Diciembre 2005, 03:47 am
por 1Ale
Problema de mostrar una lista
Java
Aeros 3 2,930 Último mensaje 10 Agosto 2010, 00:09 am
por Aeros
ha forma de mostrar el 100% zoom
Desarrollo Web
maxtextla 1 2,783 Último mensaje 3 Septiembre 2011, 15:34 pm
por #!drvy
funcion mostrar lista doble lenguaje c
Programación C/C++
spectrumni 2 3,653 Último mensaje 26 Enero 2012, 23:39 pm
por spectrumni
Wikipedia experimenta con una nueva forma de mostrar la fecha de actualización..
Noticias
wolfbcn 0 1,159 Último mensaje 8 Julio 2012, 22:35 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines