Autor
|
Tema: Ejercicio basico con c++ (Ayuda con el prinft) (Leído 8,410 veces)
|
El_newbie2017
Desconectado
Mensajes: 9
|
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. */ #include<stdio.h> #include<limits> using namespace std; int main (){ int dos,cuatro,a,b,c; float uno,f_cuatro; uno = 1/3; dos = numeric_limits < int > :: max ( ); cuatro = 50; f_cuatro = 53.123; a = 20; b = 30; c = 40; printf("\n %.3f-----%d-----%d %d %d-----%d %f",uno ,dos ,a ,b ,c ,cuatro ,f_cuatro ); return 0; }
· 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
|
|
|
|
|
El_newbie2017
Desconectado
Mensajes: 9
|
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
Mensajes: 1.603
|
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
Mensajes: 9
|
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. #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
Mensajes: 1.603
|
Solo está el enunciado del tres. ¿qué dicen los otros puntos?
|
|
|
En línea
|
|
|
|
El_newbie2017
Desconectado
Mensajes: 9
|
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
Mensajes: 1.603
|
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á 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í: ; 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 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: setlocale(LC_NUMERIC, "");
|
|
|
En línea
|
|
|
|
El_newbie2017
Desconectado
Mensajes: 9
|
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. http://www.cplusplus.com/reference/clocale/setlocale/
#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
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[PYTHON] Ayuda con ejercicio básico
Programación General
|
K4sS-
|
1
|
2,487
|
7 Abril 2013, 22:47 pm
por K4sS-
|
|
|
Ayuda en ejercicio basico
.NET (C#, VB.NET, ASP)
|
The_Saint
|
2
|
2,620
|
16 Abril 2013, 20:27 pm
por The_Saint
|
|
|
Ejercicio básico Python
Programación General
|
srg
|
3
|
2,921
|
30 Octubre 2013, 01:46 am
por Mitsu
|
|
|
Ayuda con ejercicio basico en C
« 1 2 »
Programación C/C++
|
MartaR95
|
11
|
7,084
|
12 Diciembre 2016, 01:14 am
por MAFUS
|
|
|
Ejercicio Básico de Operadores en C
Programación C/C++
|
palacio29
|
4
|
2,870
|
14 Febrero 2017, 20:50 pm
por ivancea96
|
|