• Lunes 13 de Mayo de 2024, 15:30

Autor Tema:  Re: Distinguir numeros positivos de numeros negativos  (Leído 1885 veces)

Arsys

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: Distinguir numeros positivos de numeros negativos
« en: Jueves 28 de Agosto de 2003, 19:00 »
0
Pues eso, tengo que crear un programa con un if anidado que al introducir un número diga si es 0, negativo, o positivo y he escrito lo siguiente:


 
Citar
#include <stdio.h>

int main(int argv, char **argc)

{
  int num;
  printf("Introduzca un numero: ");
  scanf("%d", &num);
 
  if(num!=0)
    {
      /*pongo como condición del if el "-" para indicar que el numero es negativo"*/
      if(num='-')printf("nEl numero es negativo.");
      else printf("nEl numero es positivo.");
    }
  else printf("nEl numero es 0.");
  printf("nn");
  system("pause");
}


Lo he revisado varias veces y en principio me parece que está bien escrito, sin embargo al introducir un numero positivo siempre dice que es negativo.

A ver si alguien sabe decirme donde está el error.

Saludos :hippi:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Distinguir numeros positivos de numeros negativos
« Respuesta #1 en: Jueves 28 de Agosto de 2003, 19:23 »
0
Tu dices:
 
Código: Text
  1.  
  2. if(num='-')
  3.  printf("nEl numero es negativo.");
  4.  
  5.  
Error1
  if(num='-')

para compara se usa el operador ==,  si utilizas  solo el = estas asignando, asi que a num le asignaste '-';

Error2

Asi no se comparan numeros, si comparas
  if(num=='-')

realmente estas comparando el varor de la variable entera num, con el valor ascii del caracter '-' es decir escibirlo asi es lo mismo que escribir esto:

  if(num==45)

Explicacion de tu resultado


 
Código: Text
  1.  
  2. if(num='-')
  3.   printf("nEl numero es negativo.");
  4. else
  5.   printf("nEl numero es positivo.");
  6.  
  7.  

lo primero dentro del if num='-' que como ya te dije seria asignar a num el valor 45, que es el ascii que corresponde al aracter '-', esta operacion siempre devuelve el valor de la asignacion por lo que devuelve 45, recuerda que un if entra por verdadero para cualquier valor diferente de 0, como devolvio 45 entonces entra por verdaero y hace esto:
 printf("nEl numero es negativo.");


Esa es la explicaion,  para compara como tulo necesitas , debes hacer:

 
Código: Text
  1.  
  2. if(num !=0)
  3. ...blablabla
  4. if(num >0)//es decir mayor que cero(positivo)
  5. ...
  6. blablabla
  7. if(num <0)//o sea menor que cero (negativo)
  8. .-..
  9. blablabla
  10.  
  11.  

Logicamente tu arreglas el codigo,pero esta es la idea y la explicacion.

JuanK
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Arsys

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Distinguir numeros positivos de numeros negativos
« Respuesta #2 en: Jueves 28 de Agosto de 2003, 19:42 »
0
Ya lo he conseguido arreglar, gracias :bravo:

Saludos :hippi: