/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

ayuda con la raiz en dev c++

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
info.0110



Registrado: 29 Jun 2012
Mensajes: 3

MensajePublicado: 29/06/2012 7:25 pm
Título: ayuda con la raiz en dev c++

tengo este problema el programa funciona pero al sacar la raíz de un numero por ejemplo 81 me debiera dar como resultado 9 pero me arroja el resultado 9.000000.
que debo hacer para que me de resultado 9 sin afectar a los números que den como resultados decimales. ejemplo 5 y su resultado es 2.236068.
les dejo el código para una mejor aclaración.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main ()
{
float x,raiz;
printf (" ingrese un numero \n ");
scanf ("%f", &x);
raiz = sqrt(x);
printf (" la raiz de su numero es %f \n\n ",raiz);
system("PAUSE");
return 0;
}


muchas gracias...
Volver arriba
durasno



Registrado: 22 Ene 2012
Mensajes: 117

MensajePublicado: 29/06/2012 8:03 pm
Título:

Hola! no entiendo cual es el problema de que te de 9.00000.. Si trabajas con flotantes entonces siempre te va a imprimir con decimales, ahora si lo que te molesta en que imprima tantos decimales pone %.2f en el printf


Saludos
Volver arriba
leosan



Registrado: 19 Abr 2012
Mensajes: 730
Ubicación: GRAN CANARIA

MensajePublicado: 29/06/2012 9:34 pm
Título: Re: ayuda con la raiz en dev c++

Sólo debes cambiar el formato de printf poniendo "%g" en lugar de "%l"; ademas puedes obtener mas decimales en casos como raíz de dos con el siguiente formato:
Código:

printf (" la raiz del numero %f es %1.16f\n\n ",x,raiz);system("PAUSE");
otro formato podría ser:
printf (" sqrt( %g )  = %1.16f\n\n ",x,raiz);system("PAUSE");

El primer "%f" es para que te imprima el número x del que calculas la raíz - fíjate que aparece después al final en el printf x - y del "1.16" el "1." es para que saque todas las cifras enteras que tenga la raíz del número, y el "16" hasta 16 decimales, restando le a eso las enteras.

Saluditos Laughing Laughing Laughing Laughing Laughing Laughing Laughing Laughing


Ultima edición por leosan el 01/07/2012 11:59 am; editado 1 vez
Volver arriba
info.0110



Registrado: 29 Jun 2012
Mensajes: 3

MensajePublicado: 30/06/2012 5:55 pm
Título: Re: ayuda con la raiz en dev c++ SOLUCIONADO

leosan escribió:
leosan escribió:
Cita:

Sólo debes cambiar el formato de printf poniendo "%g" en lugar de "%l"; ademas puedes obtener mas decimales en casos como raíz de dos con el siguiente formato:
Código:

printf (" la raiz del numero %f es %1.16g\n\n ",x,raiz);system("PAUSE");
otro formato podría ser:
printf (" sqrt( %g )  = %1.16g\n\n ",x,raiz);system("PAUSE");

El primer "%f" es para que te imprima el número x del que calculas la raíz - fíjate que aparece después al final en el printf x - y del "1.16" el "1." es para que saque todas las cifras enteras que tenga la raíz del número, y el "16" hasta 16 decimales, restando le a eso las enteras.

Saluditos Laughing Laughing Laughing Laughing Laughing Laughing Laughing Laughing




MUCHAS GRACIAS A AMBOS... SE AGRADECE MUCHO Y EL SEGUNDO FORMATO ES EL QUE NECESITABA FUNCIONA EXACTAMENTE COMO LO NECESITABA...

SALUDOS Laughing Laughing Laughing Laughing
Volver arriba
info.0110



Registrado: 29 Jun 2012
Mensajes: 3

MensajePublicado: 30/06/2012 5:57 pm
Título:

durasno escribió:
Hola! no entiendo cual es el problema de que te de 9.00000.. Si trabajas con flotantes entonces siempre te va a imprimir con decimales, ahora si lo que te molesta en que imprima tantos decimales pone %.2f en el printf


Saludos


MUCHAS GRACIAS....
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7530
Ubicación: Mexico

MensajePublicado: 01/07/2012 11:24 am
Título: Re: ayuda con la raiz en dev c++

leosan escribió:
Código:
printf (" la raiz del numero %f es %1.16g\n\n ",x,raiz);system("PAUSE");

El primer "%f" es para que te imprima el número x del que calculas la raíz - fíjate que aparece después al final en el printf x - y del "1.16" el "1." es para que saque todas las cifras enteras que tenga la raíz del número, y el "16" hasta 16 decimales, restando le a eso las enteras.

No exactamente. Cuando se utiliza (solo por poner un ejemplo) "%6.2f" eso indica que el numero se imprimirá alineado a la derecha en un campo (una columna) de 6 caracteres con dos dígitos a la derecha del punto decimal.

Un saludo
_________________
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
Volver arriba
leosan



Registrado: 19 Abr 2012
Mensajes: 730
Ubicación: GRAN CANARIA

MensajePublicado: 01/07/2012 1:40 pm
Título: Re: ayuda con la raiz en dev c++

La respuesta:
Código:
printf (" la raiz del numero %g es %1.16f\n\n ",x,raiz);system("PAUSE");

Cita:
El primer "%g" es para que te imprima el número x, sin una ristra de decimales, del que calculas la raíz - fíjate que aparece después al final en el printf x - y del "1.16" el "1." es para que saque todas las cifras enteras que tenga la raíz del número, y el "16" hasta 16 decimales, restando le a eso las enteras.

Respondí exactamente a lo que quería, como se indica en el codigo, no pretendia explicarle el formato del printf en cuanto a si utiliza "%6.2f" o "%5.3f" porque no era eso lo que preguntaba.
Cita:

Un saludo! ........................... Wink Wink Wink Wink Wink .........
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com