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

#181
Te paso una pila básica codificada en C. Espero que te sirva.

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <locale.h>

typedef struct tpila {
    int dato;
    struct tpila *siguiente;
} pila;

pila* pila_new() {
    return NULL;
}

bool pila_push(pila **top, int dato) {
    bool retValue = false;
    pila *nodo = malloc(sizeof(pila));

    if(!nodo)
        goto final_pila_push;

    nodo->dato = dato;
    nodo->siguiente = *top;
    *top = nodo;

    retValue = true;
final_pila_push:
    return retValue;
}

bool pila_pop(pila **top, int *dato) {
    bool retValue = false;
    pila *nodo = *top;

    if(!nodo)
        goto final_pila_pop;

    *dato = nodo->dato;
    *top = nodo->siguiente;

    free(nodo);

    retValue = true;
final_pila_pop:
    return retValue;
}

bool pila_top(pila ** const top, int *dato) {
    bool retValue = false;

    if(!*top)
        goto final_pila_top;

    *dato = (*top)->dato;

    retValue = true;
final_pila_top:
    return retValue;
}

void pila_free(pila **top) {
    pila *nodo;

    while(*top) {
        nodo = *top;
        *top = nodo->siguiente;
        free(nodo);
    }
}

int main() {
    int n;
    pila *p = pila_new();

    setlocale(LC_ALL, "spanish");

    pila_push(&p, 5);
    pila_push(&p, 2);
    pila_push(&p, 3);

    pila_top(&p, &n);
    printf("En la pila está el valor %d\n", n);

    pila_pop(&p, &n);
    printf("Se saca de la pila el valor %d\n", n);

    pila_pop(&p, &n);
    printf("Se saca de la pila el valor %d\n", n);

    pila_free(&p);
}
#182
La clase instrumento es la que tu has nombrado cómo Piano.

Dentro de main debes crear un objeto piano a partir de instrumento y debe guardar las siete teclas y un pueda. La forma de acceder a teclas y pedal será a partir de piano.
#183
Sacando string nom_ape del switch me ha funcionado.
#184
Sí, acabo de mirar bien la solución que te han dado y es muy buena.
#185
Verás, por ejemplo, Virgo va desde 24 de Agosto a 22 de Septiembre. Por eso es necesario controlar día y mes.
#186
Por eso es que necesita los dos meses. En vez de quitar ese if lo que debe hacer es prescindir del switch.
#187
prueba con memset.
#188
Muy bien.

Incluso puedes sustituir
x=num;
mayor=primoMayor(x);


Por
mayor=primoMayor(num);
Y eliminar x de la definición.
#189
Resuelto este problema ahora tienes otro:

Llamas a la función primoMayor dos veces:
en main

una aquí
if (esPrimo(num)){
        primoMayor(i); // si el número introducido  es primo envío a la función primoMayor el valor
}


y otra aquí
printf("El mayor primo comprendido entre 2 y %d es %d\n", num, primoMayor(num));
return 0;


Deberías encontrar la forma de llamarla sólo una vez, que es cuándo te interese conseguir ese número.
#190
En primoMayor debes devolver un entero, pues así lo indica la firma de la función, pero no devuelves nada.