Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MAFUS

#591
Cuando adquieres algo por teclado lo que se teclea va a un buffet y getchar devuelve el primer elemento de ese buffer, pero queda lo demás. Cuando tomas un solo carácter en verdad se guardan dos: el dato que quieres y uno de nueva línea '\n', fruto de pulsar ENTER.
Puedes solucionar esto vaciando el buffer leyendo todos los caracteres que tiene hasta llegar al de nueva línea, así te aseguras que en la próxima iteración sólo estará el dato que te interesa.
#592
Programación C/C++ / Re: Mejorar el codigo
20 Diciembre 2017, 20:14 PM
Para aligerar aún más las cosas (a expensas de usar más memoria) te diría que fueras guardando los primos encontrados en una lista dinámica y usaras los elementos de esa lista como divisores del número que estás operando. Si llegas al final de ella ( o superas la raíz cuadrada del número), sin que ningún elemento haya sido divisible por el número, has encontrado el siguiente primo y lo incluyes en la cola de la lista. Así te evitas de realizar muchas operaciones.

La razón de esto es que cuando factorizas, si te das cuenta, usas siempre el menor primo.
#593
Puedes hacerlo de dos formas:
1. Cargar todo el texto en memoria, hacer el añadido y guardarlo todo otra vez.
2. Puedes leer el archivo línea a línea e ir guardando en otro. Donde sea que necesites escribes la información nueva y sigues leyendo del archivo original y guardarlo en el nuevo. Después borras el original y renombras el nuevo.
#594
Se debe a que estudias material muy desfasado.

El primer warning que te lanza es porqué toda función debe declarar el tipo de dato que devuelve. Antes del estándar de 1989 las funciones, si no se declaraba su tipo de dato devuelto, se consideraban int. Actualmente es obligatorio indicar ese dato.

El segundo warning viene de que la función asignar asiento debe devolver un entero, sin embargo se llega hasta el final de ella sin devolver dato alguno. Debe haber una sentencia return con un entero.
#595
És error del enlazador (linker). Lo que te indica es que no puede encontrar la definición de un símbolo.

Normalmente se da al usar una librería diferente a la estándar pero no se le ha informado al enlazar dónde se encuentra, ya sea cuando se le llama por línea de comandos o a través del IDE. Una librería que forma parte del estándar pero que se debe indicar al explícitamente es la matemática math.h o cmath. Si has usado alguna de sus funciones y no la has incluido en el linker, ese es el fallo.
#596
Programación C/C++ / Re: Matriz dinámica
16 Diciembre 2017, 13:17 PM
Te quitarías de problemas si en vez de usar aritmética de punteros lo hicieras con subíndices, como si se tratara de un array. Así solo te tendrías que preocupar del elemento y no de dónde está.

No tengo máquina para probar pero esta línea no me gusta
scanf("%d",((*punmem)+i*columnas+j));

Cuando un poco más arriba lo has hecho de esta forma
*(punmem+i)=(int *)malloc(columnas*sizeof(int));

Fíjate en los paréntesis.
#597
Y añado más: no incluyas librerías por incluir, es decir, si no vas a usar nada de ellas no escribas los incluyes, como en el caso del mail.cpp y clase.h.

#598
De las coordenadas que has dado las tienes que sumar a la posición actual del caballo y comprobar si hay algo allí o que exista esa casilla (que esté fuera del tablero).

En plan, como te han dicho, int esValida(int x, int y); y que regrese 0 si no puede saltar para allá y 1 si puede saltar.

Sea Cx la posición X del caballo y Cy la posición Y del caballo.
Llamas, por ejemplo, esValida(Cx-2, Cy+1) y si te devuelve 1 cambias la posición del caballo: Cx -= 2; Cy++;

Espero que te sirva, estoy desde el móvil y es complicado formatear el texto.
#599
Un array declarado como int array[dimensión] siempre será del tamaño dimensión. Son estáticos y no se pueden redimensionar. Para eliminar deberían ser dinámicos.

De todas formas se te prohíbe el uso de librerías, no de funciones, por lo que supongo que te piden que hagas un array dinámico con las funciones de insertar, eliminar, leer, etc. Pero que te las tienes que hacer.
#600
Windows / Re: Error de redundancia cíclica HDD
10 Diciembre 2017, 23:27 PM
Puede que solo sea fallo de las cabezas. Si encuentras uno que sea igual ábrelo y sustituye las cabezas. Siempre con cuidado, no vayas a rayar tu disco o doblar las nuevas.

Date cuenta que en este momento ya has abierto el disco y la superficie se llenará enseguida de polvo, así que haz una copia de seguridad del disco antes de que empiece a fallar de nuevo.