I need help with a beginning C program. It's a program designed to take numerical grades and convert them to letter grades, and then output both the numerical and letter grades. In addition, it has a loop which should allow someone to type y and enter another grade. If they hit n, it should stop.
The program I've coded has a couple of issues. First, any numerical grade I enter gives me a letter grade of 70 (which isn't even a letter!) How do I fix this?
In addition, when I press y to enter a new grade, it takes me back to the "do you want to enter another grade?" statement. I'm not sure how I screwed up the loop on this one.
Any help you could give would be greatly appreciated.
CODE
#include<stdio.h>
#pragma warning(disable:4996)
int getNumGrade ();
int calcLetterGrade();
int main (void)
{
int numgrade = 0;
int lettergrade = 0;
char cgoAgain = 'y';
printf ("Enter numerical grade value now:");
numgrade = getNumGrade ();
lettergrade = calcLetterGrade();
printf ("\n When numerical grade is %d,",numgrade);
printf ("letter grade is %d.", lettergrade);
while (cgoAgain =='y' || cgoAgain == 'Y')
{
printf("\nDo you want to enter another grade?");
scanf("%c%*c",&cgoAgain);
}
return 0;
}
int getNumGrade()
{
int numgrade = 0;
scanf("%d%*c",&numgrade);
return numgrade;
}
int calcLetterGrade (numgrade)
{
int lettergrade;
if (numgrade < 60)
lettergrade = 'F';
else if (numgrade < 70)
lettergrade = 'D';
else if(numgrade < 80)
lettergrade = 'C';
else if (numgrade <90)
lettergrade = 'B';
else if (numgrade <100)
lettergrade = 'A';
return lettergrade;
}