Por que no me funciona y como lo corrijo??

Iniciado por jairogon, 16 Julio 2010, 17:50 PM

0 Miembros y 1 Visitante están viendo este tema.

jairogon

El siguiente programa compila bien pero al ejecutarlo sale lo siguiente:

sqrt: Domain error
floating point errot: Domain
Abnormal program termination


Como lo corrijo

Gracias



//Programa que calcula las ternas pitagoricas
// del 1 al 500

#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>

int main()
{
  double p=0.0;

  system("cls");

for(int i=1;i<=500;i++)
{
    for(int j=1;j<=500;j++)
     {
p=(i*i)+(j*j);

for(int k=1;k<=sqrt(p);++k)
                 {
if((p/(k*k)==1.0))
                        {
cout<<"Los numeros "<<i<<" "<<j<<" "<<k<<"  son una terna pitagorica";
                         getche();
                        }
                 }
            }

}
return 0;
}

MIG80

#1
Podrias probar usando solo enteros..

PD: con el compilador que uso compila y ejecuta bien.. ¿que compilador usas?

Saludos

Horricreu

#2
Por varias cosas que las voy a decir suponiendo que tienes un compilador moderno:


  • La librería iostream se incluye sin el .h final.
  • Porque estás utilizando la librería conio.h (esta depende de si tienes DevCpp).

Saludos :P

.:BlackCoder:.

Estas ligando C con C++... fijate en las librerias... Por cierto no deberia de compilarte czealt...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




MIG80

#4
Bueno si, para que compile tuve que quitar el .h del iostream.h  ;D
y agregar el using namespace std;

nicolas_cof

jairogon, asi te tendrian que quedar las primeras lineas del codigo...

#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

int main( void )
{
   ...
   return 0;
}


No es recomendable utilizar la libreria conio.h ya que es obsoleta y no es estandar... Utiliza getchar() en vez de getch()

Otra cosa, si quieres que tu codigo sea lo mas portable posible evita usar llamadas al sistema como system("cls") ya que solo funcionara en Windows :P

Salu10.