Linked List Program for Person Data

Verified

Added on  2019/09/16

|2
|429
|373
Homework Assignment
AI Summary
This assignment requires creating a C program that reads person data (name and age) from a file, stores this data in a linked list of structures, and then calculates the average age. The program should then print the names of all individuals whose age is greater than the calculated average. The provided code snippet demonstrates how to read data from the file, allocate memory for each person's record, and link the records together. The student is expected to complete the program by implementing the linked list creation, average age calculation, and the printing of names based on the age criteria. The assignment emphasizes dynamic memory allocation and linked list manipulation in C.
Document Page
Write a program that reads data about people from a file. You are
supposed to create a quick data file for testing purposes yourself,
which has the following structure:
each line contains a record of data about exactly one person
each record has the person's name, followed by a space,
followed by the person's age
Unlike in other assignments, there is no indication of how many
records there will be in the file. Also, we don't want to assume
that you do a first scan to find out. Instead, I ask you to solve the
problem of creating enough space for all the records by
incrementally reading one record at a time, put it into a struct
person and link that structure to the list of person structures
that is already there. This means that your person structure
needs to contain a pointer to the next structure in the list. This
also means that you need to keep track of the structure that is
the head of the list, as well as the structure that is at the end of
the list by maintaining corresponding pointers.
Here is a critical piece of code. It reads a record from the file,
creates the space (i.e. structure) to hold the data and updates
the pointers involved:
while (2 == fscanf(people_data,"%s %d",
person_current->name, &person_current-
>age)) {
person_current->next = NULL;
// provide space for the new last person
person_last->next = (struct person *)
malloc(sizeof(struct person));
// set the new last person
person_last = person_last->next;
// copy the current's person data just read
into the new last person
*person_last = *person_current;
// update age total and number of records
age_total += person_current->age;
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
number_records++;
}
I want you to write a program that reads person data out of the
above described data file, puts the data into a linked list of
person structures and then print out the names of those persons,
who are older than the average of that sample.
To get you going, I attach the simple program that we developed
to get you started with structures.
IN EVERY LINE YOU MUST WRITE A
COMMENT EXPLAINING WHY?
WHAT DOES IT DO?
Thanks
chevron_up_icon
1 out of 2
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]