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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 [87] 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ... 161
861  Programación / Programación C/C++ / Re: buscar en struct en: 30 Abril 2017, 12:39 pm
Pon todo el código, a ver si el problema está en otro sitio.
862  Programación / Programación C/C++ / Re: buscar en struct en: 29 Abril 2017, 23:51 pm
Por dos errores diferentes.
1: Capturas la el nombre del paciente con un gets, que incluye el salto de línea, y el nombre a buscar con un scanf, que descarta el salto de línea; por eso el strcmp va a retornar que las cadenas son diferentes.
2: Usas mal scanf. A la hora de capturar una cadena no debe usarse el operador &

Y eso es lo que he visto a simple vista.
863  Programación / Programación C/C++ / Re: Se puede mejorar este codigo¿? en: 29 Abril 2017, 12:16 pm
Cambiándolo un poco tienes un programa que calcula cuanto tiempp tarda un cuerpo que va a una velocidad inicial en llegar a una velocidad final si se le somete a una aceleración constante dada.
864  Programación / Programación C/C++ / Re: Problema con script C en: 29 Abril 2017, 11:23 am
Muestra lo que llevas. A lo mejor los dos índices están bien y el problema está en otro sitio.
865  Programación / Programación C/C++ / Re: Programa en C que simplifique una expresion booleana en: 29 Abril 2017, 00:37 am
Es una tarea ¿verdad?
866  Programación / Programación C/C++ / Re: Problema con script C en: 28 Abril 2017, 20:18 pm
Puedes usar dos índices diferentes, uno para cada cadena, e incrementarlos cuándo corresponda.
867  Programación / Programación C/C++ / Re: Error en C: Id returned 1 exit status en: 28 Abril 2017, 16:10 pm
Prueba quitando
#include <conio.h>
y
getch();
868  Programación / Programación C/C++ / Re: Ayuda con codigos de arduino, Activar/Desactivar sensor PIR via Bluetooh? en: 28 Abril 2017, 15:45 pm
¿Y si empiezas con algo más sencillo y te centras solo en la comunicación bluetooth? Cuando sepas manejarla podrás juntarla con el resto del código. De todas formas te diría que intentaras usar el modelo de trabajo que usan los PLC:

1. Comunicación con el exterior. Serial COM, USB, Bluetooth.
2. Leer las entradas.
3. Ejecución del programa, cálculos, acciones, etc.
4. Refresco de las salidas.
5. Vuelta al punto 1.

Como puedes ver es una máquina de estados con trabajos bien definidos y fácil de depurar.
869  Programación / Programación C/C++ / Re: Problema con script C en: 28 Abril 2017, 15:31 pm
¿Lo que falla en tu código?
Hay muchos signos de puntuación. Mejor si usaras isalnum para saber si un carácter es una letra/número o algo más.

Cuando usas gets para tomar una frase también copias el carácter de nueva línea. Si no lo eliminas de ella, que no lo haces, siempre tendrás que el último carácter de dicha frase nunca será igual al primero

Cuando copias frase2 a palin usas el mismo índice para los dos. Esto quiere decir que cuándo te saltas un signo de puntuación de los que has indicado en el if el contenido de palin en esa posición se quedará con un dato basura.

¿Qué quiere decir esto?
Código:
frase2: hola? soy yo
palin : 3klmQRjkla34

Y copias con tu código frase2 a palin
Código:
frase2: hola? soy yo
palin : holaQRsoyayo

Recuerda que las variables locales no se inicializan a 0.

De igual forma se te olvida marcar el final de la cadena palin con el carácter nulo.

En el while(lol<100), si dices que la cadena tiene como máximo 100 caracteres ¿cómo llegas al indice 100 para mostrarla letra a letra? deberías llegar hasta i que es el largo calculado con strlen.


870  Programación / Programación C/C++ / Re: Problema con script C en: 28 Abril 2017, 12:17 pm
Para este caso la función de la biblioteca estándar isalpha te va muy bien.
Con el siguiente código lo comprenderás.
Sea frase la frase válida con al menos una letra a operar, i y j los índices del inicio de la frase y final de frase respectivamente:
Código:
for(i = 0, j = strlen(frase); j >= i; ++i, --j) {
    if(!isalpha(frase[i]))
        ++j;
    else if(!isalpha(frase[j]))
        --i;
    else if(tolower(frase[i]) != tolower(frase[j]))
        break;
}

Cómo funciona:
sabemos que al final de cada bucle i aumentará y j disminuirá por tanto si el caracter en i no es una letra lo debemos descartar. Eso lo hará el bucle automáticamente cuando llegue al final pero debemos impedir que j no se mueva. Cómo ya hemos dicho que al final j va a disminuir en una unidad vamos a tener que incrementarlo en una unidad para que en la próxima iteración se quede igual (apuntando al mismo caracter.
El funcionamiento de j para i es similar.
Cuando el bucle ya compara dos caracteres si son iguales pasa a la próxima iteración, si son diferentes quiere decir que la frase no es palíndromo y para el bucle con break.

Lo que nos dará si la frase es palíndromo será mirar si i es menor a j.
Páginas: 1 ... 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 [87] 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines