online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct lista1 { int anio; struct lista2 *d; struct lista1*sig; } lista_anios; typedef struct lista2 { int mes; int cotizacionDolar; struct lista2 *sig2; } lista_meses; #define MINIMA_COTIZACION 25 void mostrarlista(lista_anios *); void cargaranios(lista_anios *); void cargardatos(lista_meses *r); void mostrardatos(lista_meses *r); void borrarCotizacion(lista_anios* p, int cotizacion); int main() { lista_anios *p=NULL; p=(lista_anios*)malloc(sizeof(lista_anios)); cargaranios(p); mostrarlista(p); lista_anios *la=p;//uso un puntero aparte para mantener p en el origen de la lista borrarCotizacion(la,MINIMA_COTIZACION); mostrarlista(p); //getch(); } void cargaranios(lista_anios *p) { printf("\nIngrese el anio (0 para finalizar): "); scanf("%d", &p->anio); if (p->anio==0) { p->sig=NULL; return; } else { p->d=(lista_meses*)malloc(sizeof(lista_meses)); cargardatos(p->d); p->sig=(lista_anios*)malloc(sizeof(lista_anios)); cargaranios(p->sig); } } void cargardatos(lista_meses *r) { printf("\nIngrese el mes (0 para finalizar): "); scanf("%d",&r->mes); if (r->mes==0) { r->sig2=NULL; return; } else { printf("\nIngrese la cotización promedio del dolar: "); scanf("%d", &r->cotizacionDolar); r->sig2=(lista_meses*)malloc(sizeof(lista_meses)); cargardatos(r->sig2); } } void mostrarlista(lista_anios *p) { if (p->sig!=NULL) { printf("\n\nAnio: %d \n", p->anio); mostrardatos(p->d); mostrarlista(p->sig); } } void mostrardatos(lista_meses *r) { if (r->sig2!=NULL) { printf("Mes: %d\n", r->mes); printf("Promedio dolar: %d\n", r->cotizacionDolar); mostrardatos(r->sig2); } } void borrarCotizacion(lista_anios *p, int cotizacion) { while (p->sig != NULL) { printf("\n\nAnio: %d \n", p->anio); lista_meses* nodoborrar = p->d; lista_meses* nodoanterior = NULL; while(nodoborrar->sig2!=NULL) { if (nodoborrar->cotizacionDolar<MINIMA_COTIZACION) { printf("La cotizacion %d del mes %d del anno %d es menor que %d y se borrara\n",nodoborrar->cotizacionDolar,nodoborrar->mes,p->anio,MINIMA_COTIZACION); if (!nodoanterior)//primer elemento { p->d=p->d->sig2;//hago que el primer elemento de la sublista apunte al siguiente elemento } else { nodoanterior->sig2 = nodoborrar->sig2; } free(nodoborrar); } nodoanterior = nodoborrar; nodoborrar = nodoborrar->sig2; } p=p->sig; } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue