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

#81
Programación C/C++ / Re: Estructuras Anidadas en C
3 Septiembre 2019, 18:47 PM
Veo un fallo en:
//...
//leer nombre hasta final del fichero
for (i=0;!feof(f);i++){

// Conseguir los nombres de los archivos y copiarlos en las estructuras

}

// copia la matricula con 9 digitos del fichero
fgets(temp,9,f);
// atoi: pasar numeros en cadenas de caracteres a enteros
li[i].alumnoLi[i].matricula=atoi(temp);


¿Qué elemento crees que apunta i? Compruébalo.
Por otra parte: la carga del número de matrícula está fuera del for.
#82
Una pila es un 'objeto' del que solo puedes ver la cabeza, no es un vector en el que puedes ver todos los elementos.

Imagínate que tienes diferentes platos y cada uno tiene un número diferente escrito en el fondo. Ahora empiezas a apilar los platos. A medida que lo vayas haciendo sólo conocerás un único valor, el que está en el plato de más arriba. Si quieres saber que números hay más abajo deberás sacar platos de la pila pero así cómo los vayas sacando los irás perdiendo, ya no formarán parte de la pila. En un vector todo esto no ocurre.

Pasa por este video, es en Java, pero la base es la misma: https://www.youtube.com/watch?v=-Shr2s0gYao
#83
size_t y sizeof son muy básicos: google te los encuentra enseguida. Los buscadores también son una buena herramienta.

Pero te lo respondo aquí:
size_t es un typedef de un entero largo sin signo. Depende de la plataforma.
sizeof es un operador que devuelve los bytes de un tipo o de un objeto.
#84
Programación C/C++ / Divertimento: Hello world!
27 Agosto 2019, 19:04 PM
#include <stdio.h>

int main() {
   int w,t,f;
   w = 3;
   f = 1214606441+w;
   there:
   t=32;
   here:
   putchar(f>>(t-=8)&0377);
   if(t) goto here;
   f += w==3? 649792259 : 55307442;
   if(--w) goto there;
}
#85
Programación C/C++ / Re: C, ¿cómo avanzar?
25 Agosto 2019, 22:04 PM
Prueba a pillar GLib y haces aplicaciones GUI para Linux, funciona en C.
O puedes decantarte por el mundo de los periféricos/microbótica/domótica y programar microcontroladores.

O puedes quedarte en el mundo intermedio del kernel de Linux o puedes realizar herramientas para usuario en modo texto.
#86
Puede que DigitOut sea un typedef de un entero o que DigitOut sea una clase con sobrecarga del operador =. Tendrías que buscar la definición de ese tipo de dato.
#88
Si necesitas que un array local se inicialice a 0 puedes usar la propiedad de C que dice que en la definición de un array inicializa los primeros elementos a valores explícitos y el resto a 0 hasta rellenarlo.

Esto quiere decir que si escribes
int b[30] = {0};
el array se definirá con todos sus valores a 0. Mucho mejor que tener que usar un bucle.
#89
Programación C/C++ / Re: ayuda en proyecto
31 Julio 2019, 19:21 PM
Una forma simple sería que crearás un array de enteros del mismo número de elementos que el que cartas y lo llenaras con 0, 1, 2, 3... Cada número representa un índice en el array cartas.

Así, supongamos que el array se llama baraja, baraja[0] contendría el 0 y ese 0 sería el índice para acceder a cartas, así cartas[baraja[0]] sería como cartas[0] que devolvería "El gallo".

Para desordenar el mazo de cartas sólo debes desordenar baraja y esto es tan sencillo cómo:
En un bucle que recorra todos los elementos de baraja siendo i la variable contador para este:
A cada iteración sacas un aleatorio entre 0 y el número de elementos menos 1 (en tu programa desde 0 hasta 53 ambos incluidos). Intercambias el elemento de baraja i con el elemento marcado con índice el número aleatorio.

Cuando se termine el bucle tendrás la baraja desordenada y sin repetir ningún elemento.
#90
Pues sí, me gusta más así, compliqué demasiado las cosas sin necesidad.