I cant run my C program and it showed the erorrs. I had spent alots of time on t
ID: 3686527 • Letter: I
Question
I cant run my C program and it showed the erorrs. I had spent alots of time on this lab, but still confused.I've be really thankful, if someone could help me.
In this lab we will have file that called Lab10_main.c . All your work will be done in the Lab10_main.c. The program consists of an array Database[], this array is an array of struct StudentInfo.
Each array elements have the following format :
struct StudentInfo{
char name[50];
int studentID;
int creditHours;
double cgpa;
Purpose of Program:
In your program you are to do the following:
1) Compute the number of students with credit hours above 9
2) Sort the array based on the student ID
3) Calculate the average of the cgpa
Your main (it is provided to you) should look like this:
int main()
{
struct StudentInfo Database [25]={NULL};
int i, studentNumber;
studentNumber = generate_list(Database);//I wrote in Lab10.c generates random data info
printf(" original list *************** ");
printf("%-24s %6s %22s %12s ", "NAME", "ID", "CREDIT HOURS", "CGPA");
for(i=0;i<studentNumber; i++)
printf("%-24s %7d %17d %16.2lf ", Database[i].name, Database[i].studentID, Database [i].creditHours, Database [i].cgpa);
printf(" sort by ID *************** ");
printf("%-24s %6s %22s %12s ", "NAME", "ID", "CREDIT HOURS", "CGPA");
sortByID(Database, studentNumber);
for(i=0;i< studentNumber; i++)
printf("%-24s %7d %17d %16.2lf ", Database[i].name, Database[i].studentID, Database [i].creditHours, Database [i].cgpa);
printf(" ");
printf("The average cgpa is %.2lf ", computeAverageCGPA (Database, studentNumber));
printf("The number of students with credit hours over over 9 are %d ", GetNumberofStudentsCreditHoursOver9 (Database, studentNumber));
printf(" ");
}
You should declare and define the following functions in your main:
1) int GetNumberofStudentsCreditHoursOver9 (struct StudentInfo Database[], int studentNumber);
2) void sortByID(struct StudentInfo Database[], int studentNumber);
double computeAverageCGPA(struct StudentInfo Database[], int studentNumber);
/*Lab10_main.c*/
Explanation / Answer
Hi, I have implemented all three methods that you have mentioned in your post. I have not implemented anu function available in Lab10.h, because Lab10.c file is with you. Right ?. So, you should have at lease generate_list() method implemented in Lab10.c file, because this program is using this methods to generate StudentInfo list.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "Lab10.h"
int GetNumberofStudentsCreditHoursOver9 (struct StudentInfo Database[], int studentNumber);
void sortByID(struct StudentInfo Database[], int studentNumber);
double computeAverageCGPA(struct StudentInfo Database[], int studentNumber);
int main()
{
struct StudentInfo Database [25];
int i, studentNumber;
studentNumber = generate_list(Database);//I wrote in Lab10.c generates random data info
printf(" original list *************** ");
printf("%-24s %6s %22s %12s ", "NAME", "ID", "CREDIT HOURS", "CGPA");
for(i=0;i<studentNumber; i++)
printf("%-24s %7d %17d %16.2lf ", Database[i].name, Database[i].studentID, Database [i].creditHours, Database [i].cgpa);
printf(" sort by ID *************** ");
printf("%-24s %6s %22s %12s ", "NAME", "ID", "CREDIT HOURS", "CGPA");
sortByID(Database, studentNumber);
for(i=0;i< studentNumber; i++)
printf("%-24s %7d %17d %16.2lf ", Database[i].name, Database[i].studentID, Database [i].creditHours, Database [i].cgpa);
printf(" ");
printf("The average cgpa is %.2lf ", computeAverageCGPA (Database, studentNumber));
printf("The number of students with credit hours over over 9 are %d ", GetNumberofStudentsCreditHoursOver9 (Database, studentNumber));
printf(" ");
}
int GetNumberofStudentsCreditHoursOver9 (struct StudentInfo Database[], int studentNumber)
{
int i;
int count = 0;
for(i=0; i<studentNumber; i++){
if(Database[i].creditHours > 9)
count++;
}
return count;
}
void sortByID(struct StudentInfo Database[], int studentNumber)
{
int i, min_index, j;
//using selection sort
for(i=0; i<studentNumber; i++){
min_index = i;
for(j=i+1; j<studentNumber; j++){
if(Database[min_index].studentID > Database[j].studentID)
min_index = j;
//swapping
struct StudentInfo temp = Database[i];
Database[i] = Database[min_index];
Database[min_index] = temp;
}
}
}
double computeAverageCGPA(struct StudentInfo Database[], int studentNumber)
{
double total = 0;
int i;
for(i=0; i<studentNumber; i++){
total = total + Database[i].cgpa;
}
return total/studentNumber;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.