Después de mucho navegar llegué a este foro, ojalá me pudiesen ayudar :) Necesito sumar los elemento ingresados a una lista dinámica, entre varias cosas más, pero lamentablemente me tira error.
/*Funciones prototipos*/
elemento *NuevoElemento(void);
void error(void);
void menu(void);
void anadir(elemento **, int);
void borrar(elemento **, int);
elemento *sumar(elemento **, int);
void visualizar(elemento *);
/*Función principal*/
int main()
{
elemento *cabecera = NULL;
elemento *q;
int opcion, dato, k = 20;
while(1)
{
do
{
system("cls");
menu();
opcion = getchar();
}while(opcion < '1' || opcion > '5');
system("cls"); // Limpiar Pantalla
switch(opcion)
{
case '1':
printf("Insertar datos: ");
scanf("%d",&dato);
anadir(&cabecera,dato);
break;
case '2':
printf("Borrar dato: ");
scanf("%d",&dato);
borrar(&cabecera,dato);
break;
case '3':
printf("sumar dato: ");
scanf("%d",&dato);
q= sumar(&cabecera,dato);
if(q)
q->dato+=k;
else
printf("Lista vacia\n");
break;
case '4':
visualizar(cabecera);
break;
case '5':
exit(0);
}
printf("\nPulse una tecla para continuar");
getchar();
}
}
.
.
.
.
.
/*Encontrar suma total*/
elemento *sumar(elemento *cabecera, int dato)
{
elemento *actual = cabecera;
while(actual != NULL && dato != actual->dato);
suma = suma + q->dato;
q = q->siguiente;
}
No puse todo el código para que no sea tan engorroso, creo que esto es lo más importante para mi problema, el error lo tengo en la función suma, llevo harto tiempo en esto y no encuentro el error, muchas gracias desde ya!!!