Manejar punteros, utilizar funciones con dos parámetros y recibir campos de un registro

Hola, estoy programando en C y tengo cierta dificultad a la hora de manejar punteros, y tengo que hacer una función en la que es lo que tengo que utilizar. Espero que puedas ayudarme.
La función recibe dos parámetros uno es una estructura que puede ser por ejemplo:
typedef struct persona {
char nombre;
int edad;
struct persona *siguiente;
}persona;
Y también recibe un campo de este registro.
El objetivo de la función es sumar todos los valores del campo que pasas como parámetro del conjunto de registros.
Por ejemplo, si pasas el campo edad, pues debe calcular la suma de las edades.
Me gustaría que me ayudaras. Yo he pensado hacer un bucle, que mientras que el último registro no sea nulo.. Pues se sume el valor del campo, pero no se exactamente como hacerlo, por mi dificultado con los punteros.
Un saludo, y gracias

1 respuesta

Respuesta
1
Si este trozo de código es lo que quieres que haga:
int edad(persona *personas, int valor )
{
int edades;
edades = 0;
int a;
for (a=0;a<sizeof(personas);a++ )
{
if (valor =*personas.edad) edades=edades + personas.edad;
*personas++;
}
return edades;
}
Hola, muchas gracias por tu ayuda, pero no se si es exactamente lo que yo quería. Igual me expresé mal.
A mi función lo que hay que pasarle son dos parámetros:
Un registro (struct).
Un campo (string).
La primera duda que tengo, es que al declarar la función, al pasar el registro, si hay que poner struct, o simplemente como tu me lo pusiste.
Otra duda, es como pasar el campo, como declararlo, si como un puntero al primer carácter del campo o cómo. Y luego a partir de esto como poder acceder a los campos del registro.
Y luego a la hora de ir sumando los campos, mi idea era poner algo como que while (el campo siguiente no apunte a null) pues sumarlo ..
Que eso no se como se pondría.. Porque no se como acceder al valor del campo del registro.
Un saludo y gracias
A la primera duda, lo que tienes que poner es el tipo de estructura.
En el trozo que te pasado antes, paso los registros y el campo a comparar.
Hago el bucle con el número de registros (sizeof) del puntero y comparo el campo que nos interesa con la variable de entrada.
Tienes que respender o finalizar la pregunta, ya que sino no podremos recibir más.
1 saludo.
http://sudisweb.tripod.com/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas