so here is my code:
#include <stdio.h>
double CalculateFinalScore(int assignment[], int midterm[], int finalExam[], double scoreSum[], char gradeAchieved[])
{
int i = 0;
for (i = 0; i < NUM_SCORES; ++i)
{
scoreSum[i] = (assignment[i] * 0.2) + (midterm[i] * 0.3) + (finalExam[i] * 0.5);
}
}
char grade(int assignment[], int midterm[], int finalExam[], double scoreSum[], char gradeAchieved[]){
char A = 'A';
char B = 'B';
char C = 'C';
char D = 'D';
char E = 'E';
int j = 0;
for (j = 0; j < NUM_SCORES; ++j){
if ((CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) >= 85 ) {
gradeAchieved[j] = A;
}
else if ((CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) >= 75) && (CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) < 85) ){
gradeAchieved[j] = B;
}
else if ((CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) >= 60) && (CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) < 75) ){
gradeAchieved[j] = C;
}
else if ((CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) >= 45) && (CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) < 60) ){
gradeAchieved[j] = D;
}
else if ((CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) >= 0) && (CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) < 45) ){
gradeAchieved[j] = E;
}
}
}
int main(void)
{
int NUM_SCORES;
char finalGrade[NUM_SCORES];
double testScores[NUM_SCORES];
int i = 0;
int x[NUM_SCORES];
int y[NUM_SCORES];
int z[NUM_SCORES];
// Prompt user to enter test scores
printf("Input number of students: ");
scanf("%d", &NUM_SCORES);
for (i = 0; i < NUM_SCORES; ++i)
{
printf("Input student %d assignment score: ", (i+1));
scanf("%d", &(x[i]));
printf("Input student %d midterm score: ", (i+1));
scanf("%d", &(y[i]));
printf("Input student %d final exam score: ", (i+1));
scanf("%d", &(z[i]));
printf("\n");
}
printf("\n");
// Call function to calculate final score
CalculateFinalScore(x, y, z, testScores, finalGrade);
for (i = 0; i < NUM_SCORES; ++i)
{
printf("Final student %d test score: ", (i+1));
printf("%lf\n", testScores[i]);
printf("Final student %d test score: ", (i+1));
printf("%lf\n", finalGrade[i]);
}
return 0;
}
}
So bassicly, unlike in my code where NUM_SCORES is alerady determined with 4. instead I want to input the NUM_SCORES value so I can determined its value easily, but everytime I do that, there is always an error that my NUM_SCORES is undeclared. oh and I also got these error
main.c: In function ‘CalculateFinalScore’:
main.c:9:21: error: ‘NUM_SCORES’ undeclared (first use in this function)
for (i = 0; i < NUM_SCORES; ++i)
^~~~~~~~~~
main.c:9:21: note: each undeclared identifier is reported only once for each function it appears in
main.c: In function ‘grade’:
main.c:24:21: error: ‘NUM_SCORES’ undeclared (first use in this function)
for (j = 0; j < NUM_SCORES; ++j){
^~~~~~~~~~
main.c:26:41: error: expected expression before ‘]’ token
if ((CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) >= 85 ) {
^
main.c:26:105: error: expected ‘)’ before ‘{’ token
if ((CalculateFinalScore(assignment[], midterm[], finalExam[], scoreSum[], gradeAchieved[]) >= 85 ) {
^
main.c:41:5: error: expected expression before ‘}’ token
}
^
main.c: In function ‘main’:
main.c:81:19: warning: format ‘%lf’ expects argument of type ‘double’, but argument 2 has type ‘int’ [-Wformat=]
printf("%lf\n", finalGrade[i]);
^
Can somebody help me and fix it?