[C] Teorema de Pitágoras

Iniciado por STANHMAL, 7 Julio 2010, 04:45 AM

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

leogtz

Cita de: STANHMAL en  7 Julio 2010, 15:32 PM

Cita de: Leo Gutiérrez. en  7 Julio 2010, 07:00 AM
Y no hace falta que uses exit(0), con el return 0 bastaba.

te refieres a reemplazar el exit por el return?
porque si es así, lo probé y no sirvió.


Debería de servir, mira:

leo@lein:~/Escritorio/c_proyect$ cat code.c | indent
/************************************
* Solución al Teorema de Pitágoras *
************************************
*       Creado por STANHMAL        *
************************************/

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

enum stan
{ continua };

int
main ()
{
  int x;
  double c, c2, C, C2, h, h2;
  enum stan hmal;

  printf ("\n **************************************\n");
  printf (" *  Solución al Teorema de Pitágoras  *\n");
  printf (" **************************************\n\n");
  hmal = continua;
  while (hmal == continua)
    {
      printf ("\n1. Para hallar un cateto.\n");
      printf ("2. Para hallar la hipotenusa.\n3. Para salir.\n");
      printf ("Opción escogida: ");
      scanf ("%d", &x);

      if (x == 1)
        {
          printf ("Introduzca el valor de un cateto: ");
          scanf ("%lf", &c);
          printf ("Introduzca el valor de la hipotenusa: ");
          scanf ("%lf", &h);
          c2 = c * c;
  h2 = h * h;
  C = sqrt (h2 - c2);
  printf ("El cateto tiene un valor de: %f\n", C);
  printf ("\nDesea continuar o salir.\n1. continuar 2. salir ");
  scanf ("%d", &x);
  if (x == 1)
    {
      hmal = continua;
    }
  else if (x == 2)
    {
      exit (0);
    }
}
      else if (x == 2)
{
  printf ("Introduzca el valor del cateto opuesto: ");
  scanf ("%lf", &c);
  printf ("Introduzca el valor del cateto adyacente: ");
  scanf ("%lf", &C);
  c2 = c * c;
  C2 = C * C;
  h = sqrt (C2 + c2);
  printf ("El valor de la hipotenusa es: %f\n", h);
  printf ("\nDesea continuar o salir.\n1. continuar 2. salir ");
  scanf ("%d", &x);
  if (x == 1)
    {
      hmal = continua;
    }
  else if (x == 2)
    {
      exit (0);
    }
}
      else if (x == 3)
{
  return 0;
}
      else
{
  printf ("Error, opción no definida.\n");
}
    }
  return 0;
}
leo@lein:~/Escritorio/c_proyect$


Compilar, ejecutar y checar el estado de error:
leo@lein:~/Escritorio/c_proyect$ gcc code.c -o code -lm
leo@lein:~/Escritorio/c_proyect$
leo@lein:~/Escritorio/c_proyect$ ./code ; echo -e "Error : $?"

**************************************
*  Solución al Teorema de Pitágoras  *
**************************************


1. Para hallar un cateto.
2. Para hallar la hipotenusa.
3. Para salir.
Opción escogida: 3
Error : 0
leo@lein:~/Escritorio/c_proyect$

El return hace su trabajo.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

STANHMAL

:S si tienes razón.

ya se que paso, es que también había reemplazado los otros exits  :xD

Gracias Leo.  ;D
Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red

.:BlackCoder:.

Yo lo hice asi... Se puede recortar un poco mas pero pes ya va a empezar el juego...

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


int main()
{
int x=1;
double c, C, h;

printf("\n **************************************\n");
printf(" *  Solución al Teorema de Pitágoras  *\n");
printf(" **************************************\n\n");
while (x == 1) {
printf("\n1. Para hallar un cateto.\n");
printf("2. Para hallar la hipotenusa.\n3. Para salir.\n");
printf("Opción escogida: ");
scanf("%d", &x);

if (x == 1) {
printf("Introduzca el valor de un cateto: ");
scanf("%lf", &c);
printf("Introduzca el valor de la hipotenusa: ");
scanf("%lf", &h);
if (c<h){
C = sqrt(h*h - c*c);
printf("El cateto tiene un valor de: %f\n", C);
printf("\nDesea continuar o salir.\n1. continuar 2. salir ");
scanf("%d", &x);}
else {printf("Error matematico"); x=3;}
}
else if (x == 2) {
printf("Introduzca el valor del cateto opuesto: ");
scanf("%lf", &c);
printf("Introduzca el valor del cateto adyacente: ");
scanf("%lf", &C);
h = sqrt(C*C + c*c);
printf("El valor de la hipotenusa es: %f\n", h);
printf("\nDesea continuar o salir.\n1. continuar 2. salir ");
scanf("%d", &x);
}
else if (x>3 || x<1)
printf("Error, opción no definida.\n");
else printf ("Saliendo\n\n");
}
getchar();
getchar();/*Tengo que ver cual es el pedo con el buffer aqui*/
return 0;
}


Saludos...

PD: No le hice la tarea el de el ya servia  :xD
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




STANHMAL

2 cosas

la primera:

Cita de: .:BlackCoder:. en  7 Julio 2010, 19:28 PM

else if (x>3 || x<1)
printf("Error, opción no definida.\n");
else printf ("Saliendo\n\n");


que no le hace falta: {} ?


else if (x>3 || x<1) {
printf("Error, opción no definida.\n");
                            }
else {
                                    printf ("Saliendo\n\n");
                            }


la segunda:

Cita de: .:BlackCoder:. en  7 Julio 2010, 19:28 PM
PD: No le hice la tarea el de el ya servia  :xD

No es tarea  :rolleyes:
Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red

leogtz

Cita de: STANHMAL en  7 Julio 2010, 19:39 PM
2 cosas

la primera:

Cita de: .:BlackCoder:. en  7 Julio 2010, 19:28 PM

else if (x>3 || x<1)
printf("Error, opción no definida.\n");
else printf ("Saliendo\n\n");


que no le hace falta: {} ?


else if (x>3 || x<1) {
printf("Error, opción no definida.\n");
                            }
else {
                                    printf ("Saliendo\n\n");
                            }


la segunda:

Cita de: .:BlackCoder:. en  7 Julio 2010, 19:28 PM
PD: No le hice la tarea el de el ya servia  :xD

No es tarea  :rolleyes:

Cuando es una única línea puedes omitir las llaves {}
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

STANHMAL

Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red

.:BlackCoder:.

 :¬¬ Aprende a decir gracias... Te ayude a "recortar" y te "critique" el code, se puede decir q le hice algunas mejoras siguiendo TU code...  :¬¬
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




[L]ord [R]NA

Esta bueno el code para haberlo hecho para matar el aburrimiento, yo deberia de seguir tu ejemplo y dejar de Facebookear cuando me encuentro aburrido.

Cita de: .:BlackCoder:. en  8 Julio 2010, 00:17 AM
:¬¬ Aprende a decir gracias... Te ayude a "recortar" y te "critique" el code, se puede decir q le hice algunas mejoras siguiendo TU code...  :¬¬

:¬¬ no tiene porque decir gracias porque no te pidio que lo hicieras...


.:BlackCoder:.

El pidio criticas contructivas... Lo cual hice pero con el code ya arreglado (para mi es mejor el code que decirle lo q se podria hacer) pero ya q coño  :-\

Saludos...

PD: Cuando te hacen un favor sin pedirlo no agradeces?

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




[L]ord [R]NA

Cita de: .:BlackCoder:. en  8 Julio 2010, 01:23 AM
El pidio criticas contructivas... Lo cual hice pero con el code ya arreglado (para mi es mejor el code que decirle lo q se podria hacer) pero ya q coño  :-\

Saludos...

PD: Cuando te hacen un favor sin pedirlo no agradeces?



Nop, quien hace un favor sin que se lo pidan no lo hace para esperar un agradecimiento.