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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C no puede hacer esto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C no puede hacer esto?  (Leído 1,819 veces)
FKT

Desconectado Desconectado

Mensajes: 221



Ver Perfil
C no puede hacer esto?
« en: 9 Septiembre 2015, 18:55 pm »

He echo este ejemplo sencillo porque he visto un ejercicio muy sencillo que decia que introduzcas un número y el rpograma dice si es positivo o negativo y me sorprende que C no pueda hacer esto:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.  
  6. bool booleano;
  7.  
  8. printf("Introduce un numero y te dire si es positivo o negativo.\n");
  9. printf("Numero: ");
  10. scanf("%b",&booleano);
  11.  
  12. if(booleano == 0){
  13. printf("Es negativo.\n");
  14. }
  15. else{
  16. printf("Es positivo.\n");
  17. }
  18.  
  19. return 0;
  20. }

Pensaba que podia escanear un booleano de forma que el (0 = negativo) y (>= 1 positivo) pensandolo ahora le veo un poco menos de coherencia o el problema quizás es que no se usa %b para asignar.
Seguramente me direis que yo mismo lo he dicho que es un boloeano y que solo puede ser true y false.

Aquí dejo el otro código que he echo de forma más "normal".

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.  
  6. int siOno;
  7.  
  8. printf("Introduce un numero y te dire si es positivo o negativo.\n");
  9. printf("Numero: ");
  10. scanf("%i",&siOno);
  11.  
  12. if(siOno == 0){
  13. printf("Es negativo.\n");
  14. }
  15. else{
  16. printf("Es positivo.\n");
  17. }
  18.  
  19. return 0;
  20. }

De esta forma si funióna correctamente.


« Última modificación: 9 Septiembre 2015, 18:57 pm por FKT » En línea

Solo hay 10 tipos de personas, las que saben binario y las que no.
someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: C no puede hacer esto?
« Respuesta #1 en: 9 Septiembre 2015, 19:22 pm »

En C, no hay tipo boolean nativo, eso es de C++.
De otra forma, 0 falso, cualquier otra cosa verdadero. Sacando ciertos compiladores que hacen de los numeros negativos un negativo.


En línea

FKT

Desconectado Desconectado

Mensajes: 221



Ver Perfil
Re: C no puede hacer esto?
« Respuesta #2 en: 9 Septiembre 2015, 20:01 pm »

En C, no hay tipo boolean nativo, eso es de C++.
De otra forma, 0 falso, cualquier otra cosa verdadero. Sacando ciertos compiladores que hacen de los numeros negativos un negativo.


Entonces no se puede hacer lo que he echo en el ejemplo verdad??? :-(
En línea

Solo hay 10 tipos de personas, las que saben binario y las que no.
A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: C no puede hacer esto?
« Respuesta #3 en: 9 Septiembre 2015, 20:28 pm »

El problema no es de C, con el que puedes programar cualquier cosa que sea programable, si no de tu visión.  

Código
  1. if(numero < 0){
  2. printf("Es negativo.\n");
  3. }
  4. else{
  5. printf("Es positivo.\n");
  6. }
« Última modificación: 9 Septiembre 2015, 20:37 pm por A.I. » En línea

someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: C no puede hacer esto?
« Respuesta #4 en: 9 Septiembre 2015, 21:00 pm »


Entonces no se puede hacer lo que he echo en el ejemplo verdad??? :-(


Si se puede, no = 0, si = cualquier cosa que no sea cero.


Ademas, no podes usar en scanf el %b, los modificadores validos los podes ver, por ejemplo, aca

Deberias reemplazarlo por un int por ejemplo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Se puede hacer esto?
Diseño Gráfico
Jericho 3 2,391 Último mensaje 3 Octubre 2006, 15:28 pm
por DSiGN3r
Un exploit puede hacer esto?
Análisis y Diseño de Malware
Panic0 2 2,679 Último mensaje 3 Marzo 2021, 00:57 am
por Xyzed
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines