Learn how to build a CGPA & Grade Calculator in C step-by-step.
Final code
#include<stdio.h>
// mark between 0 -100
float cgpa(float mark){
if(mark>100 || mark < 0) return 0;
else if(mark >= 80) return 4.0;
else if(mark >= 75) return 3.75;
else if(mark >= 70) return 3.50;
else if(mark >= 65) return 3.25;
else if(mark >= 60) return 3.00;
else if(mark >= 55) return 2.75;
else if(mark >= 50) return 2.50;
else if(mark >= 45) return 2.25;
else if(mark >= 40) return 2.00;
else return 0.0;
}
// CGPA to grade, where [cgpa] is between 0 - 4.0
char* cgpaToGrade(float cgpa) {
if (cgpa > 4.0 || cgpa < 0) return "F";
else if(cgpa >= 4.0) return "A+";
else if(cgpa >= 3.75) return "A";
else if(cgpa >= 3.5) return "A-";
else if(cgpa >= 3.25) return "B+";
else if(cgpa >= 3.0) return "B";
else if(cgpa >= 2.75) return "B-";
else if(cgpa >= 2.5) return "C+";
else if(cgpa >= 2.25) return "C";
else if(cgpa >= 2.0) return "D";
else return "F";
}
/// [avg] is the mark between 0 - 100
char* calculateGrade(float avg){
if (avg>100) return "invalid number";
else if(avg >= 80) return "A+";
else if(avg >= 75) return "A";
else if(avg >= 70) return "A-";
else if(avg >= 65) return "B+";
else if(avg >= 60) return "B";
else if(avg >= 55) return "B-";
else if(avg >= 50) return "C+";
else if(avg >= 45) return "C";
else if(avg >= 40) return "D";
else return "F";
}
int main(){
int n, total=0;
float cgpaTotal=0.0;
printf("How many subject you like to calculate: ");
scanf("%d", &n);
for(int i=0; i< n; i++){
int number ;
printf("Enter your %d subject Mark: ", i +1);
scanf("%d", &number);
cgpaTotal += cgpa(number);
total += number;
}
float avg = total/n;
float result = cgpaTotal / n;
char* grade = cgpaToGrade(result);
printf("total number %d, average %.2f\n", total, avg);
printf("Your CGPA %.2f %s\n", result, grade);
return 0;
}