Just made a program for an intro to C class and got a Segmentation fault. Searched and I guess i'm oblivious to what the hell i'm doing wrong.
Hoping someone could point me to my major fuck up.
All the program is meant to do is ask user for amount of different types of assignments, take in percentages for that many of a certain assignment, add them up, calculate an average, multiply that average by how much that respected assignment is worth, then add up all averages for a final average grade. Pointless program...I know....
Thanks
Here is meh code:
Code
#include <stdio.h>
int main(){
int numq, numa, numl, numt;
char final;
int i;
int j;
int k;
int l;
float quiz_grade[numq];
float assignment_grade[numa];
float lab_grade[numl];
float test_grade[numt];
float final_grade;
float total_assignment;
float total_quiz;
float total_lab;
float total_test;
float final_quiz, final_final, final_lab, final_assignment, final_test;
float final_avgwfinal;
float final_avgwofinal;
float avg_quiz, avg_lab, avg_assignment, avg_test;
printf("How many quizes do you wish to calculate for?\n");
scanf("%lf", &numq);
printf("How many assignments do you wish to calculate for?\n");
scanf("%lf", &numa);
printf("How many labs do you wish to calculate for?\n");
scanf("%lf", &numl);
printf("How many tests do you wish to calculate for?(NOT INCLUDING FINAL)\n");
scanf("%lf", &numt);
getchar();
printf("Do you wish to calculate for the final?(y=yes, n=no)");
scanf("%c", &final);
for(i = 0;i < numq;i++){
printf("Enter the quiz grade(in percentage) for quiz %d: ", (i + 1));
scanf("%lf", &quiz_grade[i]);
total_quiz += quiz_grade[i];
}
for(j = 0;j < numa;j++){
printf("Enter the assignment grade(in percentage) for assignment %d: ", (j + 1));
scanf("%lf", &assignment_grade[j]);
total_assignment += assignment_grade[j];
}
for(k = 0;k < numl;k++){
printf("Enter the lab grade(in percentage) for lab %d: ", (k + 1));
scanf("%lf", &lab_grade[k]);
total_lab += lab_grade[k];
}
for(l = 0;l < numt;l++) {
printf("Enter the test grade(in percentage) for test %d: ", (l + 1));
scanf("%lf", &test_grade[l]);
total_test += test_grade[l];
}
if(final =='y'){
printf("Enter the grade(in percentrage) for the final you wished to calculate for: ");
scanf("%lf", &final_grade);
}
avg_quiz = (total_quiz / numq);
printf("Your average grade on quizes is %f", avg_quiz);
avg_assignment = (total_assignment / numa);
printf("Your average grade on assignments is %f", avg_assignment);
avg_lab = (total_lab / numl);
printf("Your average grade on labs is %f", avg_lab);
avg_test = (total_test / numt);
printf("Your average grade on tests is %f", avg_test);
final_quiz = (avg_quiz * .1);
final_lab = (avg_lab * .1);
final_assignment = (avg_assignment * .4);
final_test = (avg_test * .25);
final_final = (final_grade * .15);
final_avgwfinal = (final_quiz + final_lab + final_assignment + final_test + final_final);
final_avgwofinal = (final_quiz + final_lab + final_assignment + final_test);
if(final == 'y') {
printf("Your final average grade(including the final) is: %lf", final_avgwfinal);
}
if(final == 'n') {
printf("Your final average grade excluding the final is: %lf", final_avgwofinal);
}
return 0;
}