› Foros › PC › Software libre
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char cadena[50];
int numeros[50];
int longitud;
fgets(cadena, 50, stdin);
longitud=strlen(cadena)-1;
for(int i=0;i<longitud;i++)
{
if (cadena[i]=='1')
numeros[i]=1;
else
numeros[i]=0;
}
//Aquí vendrán las operaciones
...
}
#include <stdio.h>
#include <string.h>
int main()
{
int i=0;
int numeros[50];
int n;
printf ("Introduzca numero distinto de 0 y 1 para terminar\n");
do
{
scanf("%d", &n);
numeros[i]=n;
i++;
}
while (n<2);
i--;
}
manugarrote escribió:¿No hay una manera similar a la primera, que no haya que estar haciendo la "conversión"?
if (cadena[i]=='1')
numeros[i]=1;
else
numeros[i]=0;
numeros[i] = cadena[i] - '0';
JanKusanagi escribió:manugarrote escribió:¿No hay una manera similar a la primera, que no haya que estar haciendo la "conversión"?
No estoy seguro de entenderte, pero si lo que quieres es "simplificar" estoif (cadena[i]=='1')
numeros[i]=1;
else
numeros[i]=0;
podrias cambiarlo por:numeros[i] = cadena[i] - '0';
claro que asi pierdes el pseudo-control de errores que tienes de la otra manera (que era MUY pseudo igualmente )
Igual si das mas detalles de que es lo que quieres hacer...
unsigned char=8;
unsgined char=0x08;
unsigned char numero=9; // También "unsigned char numero=0x09;"
numero = numero & 0x08; // Hago un AND de 0000 1001 con 0000 1000 para quedarme con el 5º bit más significativo.