C - Print a char returned by a function -


update: final if statement if(lettergrade <= 'a' && lettergrade >= 'f') incorrect ascii value f (70) greater (65).

i'm trying print character returned function in c.

my function, assignletter, given float, , returns character.

when run program is:

skirchbaum:~/workspace/hmwk/hmwk4 $ ./assignletter  enter pointsgrade 100 pointsgrade: 100.00 lettergrade:  

nothing gets printed lettergrade (i have tried multiple cases - 100.1, 1, etc)

what doing wrong?

code:

/* input: grade points    functionality: converts point grade letter grade    output: char representing letter grade, or -1 if error     letter grade breakdown:    = 100 - 91    b = 90 - 81    c = 80 - 71    d = 70 - 61    f = 60 , below */   #include <stdio.h> #include <stdlib.h> #define debug 1  char assignletter(float pointsgrade);  char lettergrade; float pointsgrade;  int main(){     //input pointsgrade debugging     #ifdef debug     printf("enter pointsgrade\n");     scanf("%f", &pointsgrade);     lettergrade = assignletter(pointsgrade);     printf("pointsgrade: %.2f lettergrade: %c\n", pointsgrade, lettergrade);     #endif }  char assignletter(float pointsgrade){      char lettergrade;      //grade     if(pointsgrade <= 100 && pointsgrade >= 91){         lettergrade = 'a';     }      //grade b     if(pointsgrade <= 90 && pointsgrade >= 81){         lettergrade = 'b';     }      //grade c     if(pointsgrade <= 80 && pointsgrade >= 71){         lettergrade = 'c';     }      //grade d     if(pointsgrade <= 70 && pointsgrade >= 61){         lettergrade = 'd';     }      //grade f     if(pointsgrade <= 60){         lettergrade = 'f';     }      //return letter grade or -1 if error     if(lettergrade <= 'a' && lettergrade >= 'f'){         return lettergrade;     }     else{         return -1;     } } 

the condition not formed, 'f' 70 in ascii , 'a' 65

if (lettergrade <= 'a' && lettergrade >= 'f') {     return lettergrade; } 

won't evaluate true lettergrade ('a') less 70 ('f') , not bigger it

you'd rather way

if (lettergrade >= 'a' && lettergrade <= 'f') {     return lettergrade; } 

by flipping bigger , less signs


Comments

Popular posts from this blog

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

jsf - "PropertyNotWritableException: Illegal Syntax for Set Operation" error when setting value in bean -

arrays - Algorithm to find ideal starting spot in a circle -