Entiendo que el código que has pasado no se puede tocar más que para introducir la funcionalidad del DNI.
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úvoid push(listaPTR listp, int value)
e = &listp;
node *e
lista e
e = *list
push(&l,20);
#include <stdlib.h>
#include <stdio.h>
typedef struct nodo_t {
int value;
struct nodo_t* next;
} node, *lista, **listaPTR;
lista new_node(int value){
node * n = (node *) malloc(sizeof(node));
n->value = value;
n->next = NULL;
return n;
}
lista new_lista(){
return NULL;
}
void print_list(lista head){
node *prev;
prev = head;
while (prev)
{
printf("%d\n", prev->value);
prev = prev->next;
}
}
void push(listaPTR list, int value)
{
node *e,*prev,*n;
int v; /* v no se usa */
// camino hasta el final de la list (poco eficiente, mejor tener puntero al final)
e = *list;
while (e){
prev = e;
e = e->next;
}
// creo nodo
n = new_node(value);
if (*list == NULL)
{
*list = n;
//printf("Elem: %d\n",list->value);
//printf("Elementos: %d\n",count(list));
}
else
// inserto al final
prev->next = n;
}
int main() {
lista l = new_lista();
push(&l,20);
push(&l,40);
print_list(l);
}
#include <stdio.h>
int main() {
int x;
int x2;
char c;
printf("Caracter a imprimir > ");
c = getchar();
printf("Tamaño del lado del cuadrado > ");
scanf("%i", &x);
x2 = x*x;
while(x2--) {
putchar(c);
if(x2 % x == 0)
putchar('\n');
}
return 0;
}
typedef int entero;
entero num;
int num;
typedef int *puntero_a_int
typedef int *puntero_a_int;
int a = 3;
puntero_a_int = &a;
typedef struct nodo_t {
int valor;
struct nodo_t* siguiente;
} nodo, *pila;
struct nodo_t {
int valor;
struct nodo_t* siguiente;
}
#include <stdio.h>
#include <stdlib.h>
typedef struct nodo_t {
int valor;
struct nodo_t* siguiente;
} nodo, *pila;
pila nueva_pila() {
return NULL;
}
void push(pila *l, int n) {
nodo *nuevo = malloc(sizeof(nodo));
nuevo->valor = n;
nuevo->siguiente = *l;
*l = nuevo;
}
int pop(pila *l, int *dato) {
int exito = 0;
*dato = 0;
nodo* a_borrar;
if(*l) {
*dato = (*l)->valor;
a_borrar = *l;
*l = (*l)->siguiente;
free(a_borrar);
exito = 1;
}
return exito;
}
int main() {
pila mi_pila;
int valor;
int exito;
mi_pila = nueva_pila();
push(&mi_pila, 3);
push(&mi_pila, 5);
exito = pop(&mi_pila, &valor);
if(exito) printf("%i\n", valor);
exito = pop(&mi_pila, &valor);
if(exito) printf("%i\n", valor);
exito = pop(&mi_pila, &valor);
if(exito) printf("%i\n", valor);
return 0;
}
return 0;
así retornarás el valor 0, que según el estándar quiere decir que el programa ha finalizado sin problemas.
while(getchar()!='\n');