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)
| | |-+  Ejercicio basico con c++ (Ayuda con el prinft)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio basico con c++ (Ayuda con el prinft)  (Leído 7,755 veces)
El_newbie2017

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Ejercicio basico con c++ (Ayuda con el prinft)
« en: 27 Mayo 2017, 07:54 am »

Hola, a todos;

Estoy intentando resolver el siguiente ejercicio la verdad no se si voy bien,no entiendo a lo que se refiere el punto 3, dos digitos en un espacio de 5 caracteres osea (23.)?Quisiera que me pudieran saber si me pueden ayudar. Gracias.
 
/*C) Escribir una instruccion prinf() que produzca    el resultado mostrado.

3)Tres numero enteros de dos digitos, cada uno ocupando un espacio de 5 caracteres.
*/


Código
  1. #include<stdio.h>
  2. #include<limits>
  3.  
  4. using namespace std;
  5.  
  6. int main (){
  7.  
  8. int dos,cuatro,a,b,c;
  9. float uno,f_cuatro;
  10.  
  11. uno = 1/3;
  12. dos = numeric_limits < int > :: max ( );
  13. cuatro = 50;
  14. f_cuatro = 53.123;
  15. a = 20;
  16. b = 30;
  17. c = 40;
  18.  
  19. printf("\n %.3f-----%d-----%d %d %d-----%d %f",uno,dos,a,b,c,cuatro,f_cuatro);
  20.  
  21.  
  22. return 0;
  23.  
  24. }


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 28 Mayo 2017, 01:24 am por engel lex » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #1 en: 27 Mayo 2017, 09:13 am »

¿Qué tal vas de inglés?
Aquí el manual de la família printf

Trae todas las respuestas a lo que pides.


En línea

El_newbie2017

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #2 en: 27 Mayo 2017, 21:33 pm »

Muchas gracias MAFUS, esta muy util, pero todavia no entiendo lo que quiere decir con 3 numeros de dos digitos ocupando un espacio de 5 caracteres.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #3 en: 27 Mayo 2017, 23:26 pm »

Normalmente los números ocupan el espacio de sus propios dígitos, pero el ejercicio te propone que escribas tres números que, a pesar de ser de dos dígitos cada uno ocupen 5 espacios para caracteres. Esto lo tienes en el manual.
En línea

El_newbie2017

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #4 en: 28 Mayo 2017, 03:34 am »

Hola, lo lei varias veces aunque no entendí mucho. Sin embargo si me ayudo con el punto
3 todavia ando varado por el punto 1 y 2, con el tema de 1/3=00.333, el resultado siempre me imprime 0.333. Intente con la anchura de "%5.3f", pero no resulto e intentado con mas como *,05.3, si me puedes dar otra pista te agradecería la verdad aprendí un poco de conceptos, que no manejaba muchas gracias.

Código:

#include<stdio.h>
#include<limits>

using namespace std;

int main (){

int dos,cuatro,a,b,c;
float uno,f_cuatro;



uno = float (1)/float(3);
dos = numeric_limits < int > :: max ( );
cuatro = 50;
f_cuatro = 53.123;
a = 20;
b = 30;
c = 40;

printf("\n %05f-----%d-----%5d %5d %5d-----%-3d %.3f",uno,dos,a,b,c,cuatro,f_cuatro);


return 0;

}
[\code]
« Última modificación: 28 Mayo 2017, 03:42 am por El_newbie2017 » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #5 en: 28 Mayo 2017, 13:52 pm »

Solo está el enunciado del tres. ¿qué dicen los otros puntos?
En línea

El_newbie2017

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #6 en: 28 Mayo 2017, 22:13 pm »

Mira MAFUS;

1)El resultado de 1/3 con dos enteros y 3 decimales
2)El valor maximo de una variable entera con separadores de miles.

No he conseguido que el resultado me de 00.333, ya lo intente especificando un %05.3f, osea 5 números  3 decimales, donde tenia que rellenar a la izquierda los con dos 0;00.

Y el segundo lo estoy mirando hasta ahora. tengo que hacer que el valor max del entero me imprima los puntos de millares así como 2.147.483.648 y no  2147483648 como lo tengo actualmente,
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #7 en: 28 Mayo 2017, 23:48 pm »

Para el 1: la coma decimal (o punto decimal) también se considera parte del número de dígitos cuando marcas el número mínimo de caracteres a usar. La cadena de control por tanto será
Código:
"%06.3f"
Por cierto, para hacer una división con decimales basta que uno de los dos números sea marcado cómo decimal con un punto decimal. Así:
Código:
float uno = 1/3.;
;
Cuando C encuentra una operación matemática con dos números de diferente naturaleza siempre promociona los de menor rango al mismo tipo del mayor rango de la operación.

Para el 2: el manual dice
Citar
For some numeric conversions a radix character ("decimal point") or thousands' grouping character is used. The actual character used depends on the LC_NUMERIC part of the locale. The POSIX locale uses '.' as radix character, and does not have a grouping character. Thus,

printf("%'.2f", 1234567.89);
results in "1234567.89" in the POSIX locale, in "1234567,89" in the nl_NL locale, and in "1.234.567,89" in the da_DK locale.

Como puedes ver te marca que el apostrofe es el signo a usar para que printf imprima el separador de millares y, además, dice que depende de la configuración local.

Otra búsqueda por internet, no muy larga, indica como cambiar el comportamiento de printf si de normal no marca los millares. Para ahorrarte el trabajo te lo pongo aquí. Antes de usar printf debes cambiar la configuración local de esta forma:
Código:
setlocale(LC_NUMERIC, "");
En línea

El_newbie2017

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #8 en: 29 Mayo 2017, 02:58 am »

De nuevo mil gracias MAFUS, no se como no se me ocurrió que el punto es un carácter,bueno.

Ya estaba mirando justamente ese tema de setlocale LC_NUMERIC, pero no encuentro la abreviación  de el locale de mi país intente (co_CO) y (COLOMBIA), ya que decia que lo pusiera en mayúscula.

Código:
http://www.cplusplus.com/reference/clocale/setlocale/ 

Código:
#include<stdio.h>
#include<limits>
#include<locale.h>

using namespace std;

int main (){

int dos,cuatro,a,b,c;
float uno,f_cuatro;

setlocale(LC_NUMERIC, "");

uno = 1.0/3;
dos = numeric_limits < int > :: max ( );
cuatro = 50;
f_cuatro = 53.123;
a = 20;
b = 30;
c = 40;

printf("\n %06.3f-----%d-----%5d %5d %5d-----%-3d %.3f",uno,dos,a,b,c,cuatro,f_cuatro);

return 0;
}
« Última modificación: 29 Mayo 2017, 03:18 am por El_newbie2017 » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ejercicio basico con c++ (Ayuda con el prinft)
« Respuesta #9 en: 29 Mayo 2017, 03:58 am »

Para colombia es es_CO

http://www.localeplanet.com/icu/es-CO/
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[PYTHON] Ayuda con ejercicio básico
Programación General
K4sS- 1 2,261 Último mensaje 7 Abril 2013, 22:47 pm
por K4sS-
Ayuda en ejercicio basico
.NET (C#, VB.NET, ASP)
The_Saint 2 2,368 Último mensaje 16 Abril 2013, 20:27 pm
por The_Saint
Ejercicio básico Python
Programación General
srg 3 2,631 Último mensaje 30 Octubre 2013, 01:46 am
por Mitsu
Ayuda con ejercicio basico en C « 1 2 »
Programación C/C++
MartaR95 11 6,497 Último mensaje 12 Diciembre 2016, 01:14 am
por MAFUS
Ejercicio Básico de Operadores en C
Programación C/C++
palacio29 4 2,573 Último mensaje 14 Febrero 2017, 20:50 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines