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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


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

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Problema con numeros decimales:
« en: 13 Diciembre 2013, 17:22 pm »

Hola, me acabo de iniciar hará un par de semanas en el mundillo de la programacion, lo estoy haciendo por mi cuenta, y si veo que me va gustando igual me meto en un curso. El caso es que, como era de esperar, empiezo a tener los primeros problemas a la hora de hacer que funcionen los programas. Tengo muchas dudas, demasiadas. Pero por ahora solo expondré una de ellas, aquí os dejo el codigo de uno de mis programas (que sirve para hallar la media de tres números introducidos por el usuario):

#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int main (){
double x;
double y;
double z;
cout<<"Introduce el primer numero"<<endl;
cin>>x;
printf ("\n");
printf ("\n"); 
cout<<"Introduce el segundo numero"<<endl;
cin>>y;
printf ("\n");
printf ("\n");
cout<<"Introduce el tercer numero"<<endl;
cin>>z;
printf ("\n");
printf ("\n");
double media=(x+y+z)/3;
cout<<"La media aritmetica de estos numeros es"<<endl<<media;
getch();
}


Al meter cualquier número entero en el programa, este funciona a la perfección. El problema es si le doy a las variables un valor decimal (por ejemplo 8,3), el programa a partir de ese momento falla y no me deja escribir nada más. Y lo mismo que me pasa en ese programa me ocurre en cualquier otro en el que se trabajen con números. El programa se vuelve "loco" cada vez que meto un decimal. No sé donde está el fallo, y estoy seguro que para muchos aquí esto será pan comido, así que me gustaría que me dijerais que hice mal, o que elemento falta ahí, ya que no podré seguir avanzando en este mundillo sin resolver este tipo de fallos.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema con numeros decimales:
« Respuesta #1 en: 13 Diciembre 2013, 17:35 pm »

Si apenas empiezas lo primero que debes hacer es leer el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

El problema que mencionas se debe a que en C y C++ el separador no es la coma, es el punto.

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
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Problema con numeros decimales:
« Respuesta #2 en: 13 Diciembre 2013, 19:10 pm »

Antes que nada cuando postees código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

Fíjate además que main es int, lo que requiere un return entero al final de la función.

Por otro lado, mezclas para imprimir cout, propio de C++, con printf, más propio - aunque no exclusivo- de C. Con lo que podrías usar cout en lugar de printf en este caso. Lo dejo así porque son sólo dos endl.

No incluyas librerías que no usas -cstring en lugar de string.h- y evita la de conio, y su función asociada getch(),  que no es estándar.

Y en lo posible, declara las variables al comienzo, no hace falta una línea para cada variable.



Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int main (){
  5.    double x,y,z,media;
  6.    cout<<"Introduce el primer numero: ";
  7.    cin>>x;
  8.    cout<<endl<<endl;
  9.    cout<<"Introduce el segundo numero: ";
  10.    cin>>y;
  11.    cout<<endl<<endl;
  12.    cout<<"Introduce el tercer numero:";
  13.    cin>>z;
  14.    cout<<endl<<endl;
  15.    media=(x+y+z)/3;
  16.    cout<<"La media aritmetica de estos numeros es: "<<media<<endl;
  17.    return 0;
  18. }
  19.  

Saluditos! ..... !!!!        
« Última modificación: 13 Diciembre 2013, 19:40 pm por leosansan » En línea

novato991

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema con numeros decimales:
« Respuesta #3 en: 13 Diciembre 2013, 19:15 pm »

Si apenas empiezas lo primero que debes hacer es leer el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

El problema que mencionas se debe a que en C y C++ el separador no es la coma, es el punto.

Un saludo

Joder! qué fácil era! y yo dos p.tos dias de mala leche y rompiendome la cabeza porque no salia nada bien. Y todo por un puntito.

Te quiero tío! Ahora lo entiendo todo y ya todo funciona a la perfección. Sé que esto sólo es el comienzo, vendrán más dudas después, pero al menos podré seguir avanzando. Gracias por tomarte la molestia de responderme, cuando no esté tan verde y tenga algo más de nivel trataré yo también de resolver dudas de otros usuarios, al fin y al cabo programador es sólo una profesión más, y si queremos crecer en esto también es importante ayudarnos entre nosotros.
Saludos y gracias por la respuesta
En línea

novato991

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema con numeros decimales:
« Respuesta #4 en: 13 Diciembre 2013, 19:30 pm »

Antes que nada cuando postees código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

Fíjate además que main es int, lo que requiere un return al final de la función.

Por otro lado, mezclas para imprimir cout, propio de C++, con printf, más propio - aunque no exclusivo- de C. Con lo que podrías usar cout en lugar de printf en este caso. Lo dejo así porque son sólo dos endl.

No incluyas librerías que no usas -cstring en lugar de string.h- y evita la de conio, y su función asociada getch(),  que no es estándar.

Y en lo posible, declara las variables al comienzo, no hace falta una línea para cada variable.



Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int main (){
  5.    double x,y,z,media;
  6.    cout<<"Introduce el primer numero: ";
  7.    cin>>x;
  8.    cout<<endl<<endl;
  9.    cout<<"Introduce el segundo numero: ";
  10.    cin>>y;
  11.    cout<<endl<<endl;
  12.    cout<<"Introduce el tercer numero:";
  13.    cin>>z;
  14.    cout<<endl<<endl;
  15.    media=(x+y+z)/3;
  16.    cout<<"La media aritmetica de estos numeros es: "<<media<<endl;
  17.    return 0;
  18. }
  19.  

Saluditos! ..... !!!!        


Gracias por tus consejos!
Ten en cuenta que acabo de empezar hace unas dos semanas, y en plan autodidacta, los escasos conocimientos que tengo en esta materia se deben a un blog que estoy siguiendo en el que un docente experto en la materia nos explica los fundamentos básicos y nos deja ejercicios para resolver, lo que sé lo he sacado de ahí, aunque está claro que cada uno tendrá su punto de vista o sus métodos preferidos a la hora de ponerse manos a la obra, pero yo como buen novato que soy todavía no tengo ni idea de varios truquillos que me cuentas. Pero está bien que me lo hayas dejado, lo tomaré en cuenta para ir aprendiendo cosillas, que de eso se trata.

Por lo menos ya me funcionan mis "programas", que me había quedado estancado por la chorrada de las comas.
« Última modificación: 13 Diciembre 2013, 19:33 pm por novato991 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Numeros decimales en batch
Scripting
kraszic 2 13,526 Último mensaje 28 Agosto 2007, 15:36 pm
por kraszic
Como convertir numeros decimales a numeros binario en c++?
Programación C/C++
fco_noh 3 9,269 Último mensaje 31 Agosto 2010, 07:38 am
por do-while
Números de decimales en Python.
Scripting
Meta 2 15,348 Último mensaje 30 Septiembre 2010, 23:00 pm
por Meta
cambiar numeros decimales a enteros
Dudas Generales
ZeroRcp 4 3,031 Último mensaje 27 Julio 2015, 19:38 pm
por engel lex
Evitar que muestre números repetidos, problema con decimales.
Programación General
Tachikomaia 1 1,518 Último mensaje 18 Diciembre 2023, 05:27 am
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines