Foros del Web » Programación para mayores de 30 ;) » C/C++ »

programa de calculo valor absoluto

Estas en el tema de programa de calculo valor absoluto en el foro de C/C++ en Foros del Web. buenas... casi casi me sale este programa donde ingreso dos valores... y me da como resultado el de mayor valor absoluto... solo que me da ...
  #1 (permalink)  
Antiguo 08/06/2010, 23:09
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
programa de calculo valor absoluto

buenas... casi casi me sale este programa
donde ingreso dos valores... y me da como resultado el de mayor valor absoluto...
solo que me da un error, cuando ingreso un negativo primero y un positivo despues....me da 23,6464564


despues por ahi

no se cual puede ser el error... me maree...




#include<conio.h>
#include<stdio.h>

main ()
{

int a,b,amod,bmod;

printf ("este programa calcula el mayor valor absoluto\n");
printf ("\ningrese un numero: ");
scanf ("%d",&a);
printf("\ningrese otro numero: ");
scanf ("%d",&b);
if (a==b)
printf ("\nlos numeros ingresados son iguales");
if (a>0 && b>0)
{
if (a>b)
printf ("el mayor valor absoluto es: %d\n",a);
else
printf ("\nel mayor valor absoluto es: %d\n",b);
}
else
{
if (a<0)
amod=a*(-1);
else
amod=a;
if (b<0)
bmod=b*(-1);
if (amod==bmod)
printf ("\nlos modulos de los numeros ingresados son iguales");
if (amod>bmod)
printf ("\nel mayor vaor absoluto es: %d",amod);
else
printf ("\nel mayor valor absoluto es: %d",bmod);
}
getch();
}
  #2 (permalink)  
Antiguo 08/06/2010, 23:47
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: programa de calculo valor absoluto

Aqui podrías utilizar la librería math.h

#include <math.h>

y hacer uso de la función abs() que te regresa el valor absoluto de un número.
Así evitas la multiplicación por -1, recuerda que en terminos de optimización, una multiplicación es mas costosa para el consumo de memoria.

#include<conio.h>
#include<stdio.h>

main ()
{

int a,b,amod,bmod;

printf ("este programa calcula el mayor valor absoluto\n");
printf ("\ningrese un numero: ");
scanf ("%d",&a);
printf("\ningrese otro numero: ");
scanf ("%d",&b);
amod = abs(a);
bmod = abs(b);
if(a==b)
{
printf("Los números son iguales");
}
if(a>b)
{
printf("El numero %d es mayor",a);
else
printf("El número %d es mayor",b);
}
getch();
}


Ahora... quien te enseña programación, al parecer la guía que estas utilizando suena bastante primitiva y fuera de los estandares contemporaneos. No es tu culpa, sino de la persona que te esta enseñando.
  #3 (permalink)  
Antiguo 09/06/2010, 07:47
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: programa de calculo valor absoluto

sugerencia, en el programa anterior, provisto por AlanChavez:

if( a > b ) deberia ser if( amod > bmod )

si no se quiere usar abs() una alternativa es usar if

Código C:
Ver original
  1. amod = a;
  2. if( amod < 0 )
  3.     amod = -amod;
  #4 (permalink)  
Antiguo 09/06/2010, 10:13
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: programa de calculo valor absoluto

y no sirve , ( no se si sera invento mio...)

colocar en la variable "amod" que sea unsigned??


como aca...

amod = a;
if( amod < 0 )
amod = -amod;

sé que se puede hacer con abs(), pero quiero hacerlo de una forma mas casera...
  #5 (permalink)  
Antiguo 09/06/2010, 10:26
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: programa de calculo valor absoluto

listo ya esta resuelto....

queda asi


#include<conio.h>
#include<stdio.h>

main()
{
int a,a1,b,b1 ;

printf ("ingrese el primer valor: ");
scanf ("%d",&a);
printf("ingrese el segundo valor: ");
scanf ("%d",&b);
a1=a;
b1=b;
if (a1<0)a1=a1*(-1);
if (b1<0)b1=b1*(-1);
if (a1>b1)
{
printf ("el modulo mayor es: %d\n",a);
}
else
{
printf ("el modulo mayor es: %d\n",b);
}
getch();
}

Etiquetas: calculo, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:32.