问题是:
一门课程具有以下特点:
Course Name: cName (string of 32 characters)
Course Number: cNumber (integer)
Number of Students enrolled: nStudents (integer)
Level: Level (character: ‘G’ for graduate, ‘U’ for undergraduate)
Grades: sGrades (array of 40 integers)
Define a structure, called CourseType, which includes the above properties.
In the main program: use the structure you defined to declare an array of 5 courses, and store in this array the information below about these courses (the information below specify the course name, number, number of students, and level:
“Introduction to Programming”, 230, 37, ‘U’
“Computer Networks”, 450, 44, ‘U’
“Data Structures & Algorithms”, 330, 38, ‘U’
“Distributed Databases”, 630, 18, ‘G’
“Mobile Ad hoc Networks”, 656, 34, ‘G’
关于成绩,对于每门课程,生成与学生数量一样多的随机值,并将它们存储在成绩数组 (sGrades) 中。这些值应介于 50 和 100 之间。
Write a function DisplayCourseStatistics that takes as input a course structure, and computes the average grade, minimum grade, and maximum grade in the course. After computing these three values, the function displays them.
In the main program: after defining the structure and the five courses in part c, and populating these courses with the data (including the grades), ask the user to specify the course number. Then call the function DisplayCourseStatistics and pass it the corresponding course structure in order for it to display the grade statistics (average, minimum, and maximum).
我写的代码我仍然有错误=[
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct CourseType CourseType;
struct CourseType
{
char cName[32];
int cNumber;
int nStudents;
char Level;
int sGrades[44];
};
void DisplayCourseStatistics(CourseType course[],int n);
int main()
{
int i;
CourseType course[5];
strcpy(course[0].cName,"Introduction to Programming");
course[0].cNumber=230;
course[0].nStudents=37;
course[0].Level='U';
for(i=0;i<37;i++)
{
course[0].sGrades[i]=50+rand()%(50);
}
strcpy(course[1].cName,"Computer Networks");
course[1].cNumber=450;
course[1].nStudents=44;
course[1].Level='U';
for(i=0;i<44;i++)
{
course[1].sGrades[i]=50+rand()%(50);
}
strcpy(course[2].cName,"Data Structures & Algorithms");
course[2].cNumber=330;
course[2].nStudents=38;
course[2].Level='U';
for(i=0;i<38;i++)
{
course[2].sGrades[i]=50+rand()%(50);
}
strcpy(course[03].cName,"Distributed Databases");
course[3].cNumber=630;
course[3].nStudents=18;
course[3].Level='G';
for(i=0;i<18;i++)
{
course[3].sGrades[i]=50+rand()%(50);
}
strcpy(course[4].cName,"Mobile Ad hoc Networks");
course[4].cNumber=656;
course[4].nStudents=34;
course[4].Level='G';
for(i=0;i<34;i++)
{
course[4].sGrades[i]=50+rand()%(50);
}
int n;
printf("enter the course number that you'd like to display its stat");
scanf("%d",&n);
DisplayCourseStatistics(CourseType course[n],n);
}
void DisplayCourseStatistics(CourseType course[n],int n)
{
int average_grade;
int minimum_grade;
int maximum_grade;
int sum=0;
int i;
for(i=0;i<course[n].nStudents;i++)
{
sum+=course[n].sGrades[i];
if(course[n].sGrades[i]>course[n].sGrades[i+1])
{
minimum_grade=course[n].sGrades[i+1];
maximum_grade=course[n].sGrades[i];
}
else if(course[n].sGrades[i]<course[n].sGrades[i+1])
{
minimum_grade=course[n].sGrades[i];
maximum_grade=course[n].sGrades[i+1];
}
}
printf("The Average Grade is %d\nThe Maximum Grade is %d\nThe Minimum Grade is %d\n",average_grade=(sum/course[n].nStudents),maximum_grade,minimum_grade);
}
怎么了,我该怎么办谢谢!!!
对于评论,它应该是 40,但我使用的是 44,因为在一门课程中,学生人数是 44,大于 40,所以对于错误,实际上我一直在使用键盘,所以我不确定它是否说错误:函数“DisplayCourseStatistics”的参数太少