40,781 views
2 votes
2 votes
Modify your struct person to include an additional field to hold a last name. That should be declared as char lname[30]; //30 characters is probably long enough Modify your program so that in addition to reading ages and heights, it reads in a name for each person. At the end, in addition to printing the averages calculated previously, print the names of the oldest, youngest, tallest, and shortest people.

User Bae Cheol Shin
by
2.8k points

1 Answer

1 vote
1 vote

Answer:

The answer to the question is explained below

Step-by-step explanation:

#include <stdlib.h>

#include <stdio.h>

#define MAXNUM 100

typedef struct person

{

int age;

double height;

}

person;

int getData(person people[], int max)

{

printf("Enter your age(or -1 to quit):");

int n = 0;

scanf("%d", &people[n].age);

while (people[n].age>0)

{

if(n == MAXNUM)

{

printf("You have reached the maximum limit");

return n;

}

printf("Enter your height:");

scanf("%lf", &people[n++].height);

printf("Enter your age(or -1 to quit):");

scanf("%d", &people[n].age);

}

return n;

}

void getAverages(person people[], double *averageAge, double * averageHeight, double *averageRatio, int numPeople)

{

*averageAge = 0;

*averageHeight = 0;

for(int i = 0; i <numPeople; i++)

{

*averageAge += people[i].age;

*averageHeight += people[i].height;

}

*averageAge /= numPeople;

*averageHeight /= numPeople;

*averageRatio = *averageAge / *averageHeight;

}

void printAverages(double averageAge, double averageHeight, double averageRatio)

{

int age;

double height;

printf("Result:\\");

printf("Average age is %.2lf\\", averageAge);

printf("Average height is %.2lf\\", averageHeight);

printf("The average age/height ratio is %.2lf\\", averageRatio);

}

void main(void)

{

person people[MAXNUM];

int numPeople;

double averageAge, averageHeight, averageRatio;

numPeople = getData(people, MAXNUM);

if (numPeople == 0);

getAverages(people, &averageAge, &averageHeight, &averageRatio, numPeople);

printAverages(averageAge, averageHeight, averageRatio);

}

User Rusmir
by
3.0k points