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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [?]numero de 1 y 0 en un vector [solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [?]numero de 1 y 0 en un vector [solucionado]  (Leído 2,136 veces)
macshivi

Desconectado Desconectado

Mensajes: 19


Ver Perfil
[?]numero de 1 y 0 en un vector [solucionado]
« en: 27 Octubre 2016, 21:15 pm »

He realizado un programa que al introducir un numero de caracter en un vector te dice el numero de 1 y 0.
Código
  1. #include <stdio.h>
  2. /*#include <math.h>*/
  3. int main (int argc, char *argv[]) {
  4.  
  5.  
  6. char bin[100];
  7. int n=0,n2=0,i;/*decimal0,decimal1,i;*/
  8. printf("Escribe un numero binario:\n:");
  9. scanf("%c",&bin);
  10. /*Cantidad de 1 y 0*/
  11. for(i=0;i<100;i++) {
  12. /*cantidad de 1 y 0*/
  13.  
  14. if ((bin[i]=49) ||(bin[i]=48)) {
  15. n=n+1;
  16. printf("%d",n);
  17. }
  18. n2=n2+1;
  19. }
  20. printf("N2 vale %d\n",n2);
  21. printf("N vale %d\n",n);
  22. return 0;
  23. }
  24.  
El problema es que cuando lo ejecuto,  la funcion "if" no funciona de la manera que espero (que a n se le sume uno cuando lea que hay un caracter con el valor 49  y 48 en ASCII que equivale al 1 y al 0) y y empieza a sumar un uno a n cada vez que se ejecuta el bucle.

En este caso n tendria que valer 3

Gracias por vuestro tiempo


« Última modificación: 27 Octubre 2016, 21:49 pm por macshivi » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [?]numero de 1 y 0 en un vector
« Respuesta #1 en: 27 Octubre 2016, 21:32 pm »

tienes 2 errores

primero
Código:
scanf("%c",&bin);
%c lee un caracter... si quieres leer una cadena de ellos usa %s o %99c (99 porque el ultimo debe ser \0)

segundo
Código:
((bin[i]=49) ||(bin[i]=48))

cada vez que llegas al if, bin se torna 49... tienes que usar "==" para comprar no "="


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
macshivi

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: [?]numero de 1 y 0 en un vector
« Respuesta #2 en: 27 Octubre 2016, 21:50 pm »

tienes 2 errores

primero
Código:
scanf("%c",&bin);
%c lee un caracter... si quieres leer una cadena de ellos usa %s o %99c (99 porque el ultimo debe ser \0)

segundo
Código:
((bin[i]=49) ||(bin[i]=48))

cada vez que llegas al if, bin se torna 49... tienes que usar "==" para comprar no "="

Me ha funcionado. muchas gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
(SOLUCIONADO) Busqueda dentro de un vector en C
Programación C/C++
;c1v!c 3 10,913 Último mensaje 23 Febrero 2011, 22:27 pm
por ;c1v!c
comprobar numero repetido en un vector
Programación C/C++
MessageBoxA 4 3,341 Último mensaje 26 Junio 2014, 02:05 am
por MeCraniDOS
saber primer numero y ultimo numero [solucionado]
Bases de Datos
basickdagger 4 4,615 Último mensaje 3 Septiembre 2014, 17:19 pm
por basickdagger
un numero multiplique un vector
Programación C/C++
lalo+12 1 2,037 Último mensaje 16 Noviembre 2017, 07:13 am
por CalgaryCorpus
Pasar un número a un vector
Programación C/C++
dailia__ 3 2,291 Último mensaje 19 Noviembre 2017, 01:53 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines