In: Computer Science
Write a C program that contains a structure that uses predefined types and union. • Create a struct with name, age, kind (Either child, college student, or adult), and kindOfPerson (Either kid, student, or adult) • kids have a school field. Students have college and gpa. Adults have company and salary. • Create one non-dynamic struct with the content for a college student: "Bob", 20, K-State, 3.5 • Create one struct dynamically for a kid with: "Alison", 10, "Amanda Arnold Elementary" • Implement a function that can be used to display the contents of a single structure • Print out both structures • Free up the memory allocated before exiting
Simple structure
#include<stdio.h>
#include<string.h>
struct str1
{
char name[20];
int age;
char kind[20];
char kindOfPerson[20]
};
Non dynamic struct :
struct student
{
char name[20];
int age;
char college[30];
double salary;
};
int main()
{
struct student record = {0}; //initializing null
strcpy(record.name,"Bob");
record.age=20;
strcpy(record.college,"K-State");
record.salary=3.5;
printf(" Name is: %d \n", record.name);
printf(" Age is: %d \n", record.age);
printf(" College is: %d \n", record.college);
printf(" Salary is: %d \n", record.salary);
}
Dynamic structure:
#include<stdio.h>
#include<stdlib.h>
struct kid
{
char name[20];
int age;
char school[30];
};
int main()
{
struct kid *ptr;
int i, noOfRecords;
printf("Enter number of records: ");
scanf("%d", &noOfRecords);
// Allocates the memory for noOfRecords structures with pointer ptr pointing to the base address.
ptr = (struct kid*) malloc (noOfRecords * sizeof(struct course));
for(i = 0; i < noOfRecords; ++i)
{
printf("Enter name,age and school of the kid respectively:\n");
scanf("%s %d %s", &(ptr+i)->name, &(ptr+i)->age, &(ptr+i)->school);
}
printf("Displaying Information:\n");
for(i = 0; i < noOfRecords ; ++i)
printf("%s\t%d\n%d\n", (ptr+i)->name, (ptr+i)->age, (ptr+i)->school);
return 0;
}
Implementing function
For ex if we want to display the contents of structure student then we can write a function as shown below :
void display(struct student stu) // in arguments the structure name is passed
{
//print details
}