#include <stdio.h> 
 
// function prototype 
char  calcLetterGrade( int  score) ; 
 
int  main( void ) 
{ 
    printf ( "Score: 95 -> Grade: %c\n " ,  calcLetterGrade
( 95 ) ) ;      printf ( "Score: 82 -> Grade: %c\n " ,  calcLetterGrade
( 82 ) ) ;      printf ( "Score: 75 -> Grade: %c\n " ,  calcLetterGrade
( 75 ) ) ;      printf ( "Score: 62 -> Grade: %c\n " ,  calcLetterGrade
( 62 ) ) ;      printf ( "Score: 45 -> Grade: %c\n " ,  calcLetterGrade
( 45 ) ) ;      printf ( "Score: -5 -> Grade: %c\n " ,  calcLetterGrade
( - 5 ) ) ;    // invalid      printf ( "Score: 150 -> Grade: %c\n " ,  calcLetterGrade
( 150 ) ) ;  // invalid      return  0 ; 
} 
 
// ************************************************** 
// Function: calcLetterGrade 
// 
// Description: 
//   Maps a numeric test score (0–100) to a letter grade. 
//   The grading scale is as follows: 
//       90–100 -> 'A' 
//       80–89  -> 'B' 
//       70–79  -> 'C' 
//       60–69  -> 'D' 
//       0–59   -> 'F' 
//   Any score outside 0–100 returns 'I' (invalid). 
// 
// Parameters: 
//   score - numeric test score 
// 
// Returns: 
//   Letter grade ('A', 'B', 'C', 'D', 'F', or 'I') 
// ************************************************** 
char  calcLetterGrade( int  score) 
{ 
    char  result;  /* letter grade result */ 
 
    // map score to letter grade 
    if  ( score >=  90 ) 
        result =  'A' ; 
    else  if  ( score >=  80 ) 
        result =  'B' ; 
    else  if  ( score >=  70 ) 
        result =  'C' ; 
    else  if  ( score >=  60 ) 
        result =  'D' ; 
    else  if  ( score >=  0 ) 
        result =  'F' ; 
    else 
        result =  'I' ;  /* invalid score */ 
 
    // check for invalid values over 100 
    if  ( score >  100 ) 
        result =  'I' ; 
 
    return  result; 
} 
 
				I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBmdW5jdGlvbiBwcm90b3R5cGUKY2hhciBjYWxjTGV0dGVyR3JhZGUoaW50IHNjb3JlKTsKCmludCBtYWluKHZvaWQpCnsKICAgIHByaW50ZigiU2NvcmU6IDk1IC0+IEdyYWRlOiAlY1xuIiwgY2FsY0xldHRlckdyYWRlKDk1KSk7CiAgICBwcmludGYoIlNjb3JlOiA4MiAtPiBHcmFkZTogJWNcbiIsIGNhbGNMZXR0ZXJHcmFkZSg4MikpOwogICAgcHJpbnRmKCJTY29yZTogNzUgLT4gR3JhZGU6ICVjXG4iLCBjYWxjTGV0dGVyR3JhZGUoNzUpKTsKICAgIHByaW50ZigiU2NvcmU6IDYyIC0+IEdyYWRlOiAlY1xuIiwgY2FsY0xldHRlckdyYWRlKDYyKSk7CiAgICBwcmludGYoIlNjb3JlOiA0NSAtPiBHcmFkZTogJWNcbiIsIGNhbGNMZXR0ZXJHcmFkZSg0NSkpOwogICAgcHJpbnRmKCJTY29yZTogLTUgLT4gR3JhZGU6ICVjXG4iLCBjYWxjTGV0dGVyR3JhZGUoLTUpKTsgICAvLyBpbnZhbGlkCiAgICBwcmludGYoIlNjb3JlOiAxNTAgLT4gR3JhZGU6ICVjXG4iLCBjYWxjTGV0dGVyR3JhZGUoMTUwKSk7IC8vIGludmFsaWQKICAgIHJldHVybiAwOwp9CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBGdW5jdGlvbjogY2FsY0xldHRlckdyYWRlCi8vCi8vIERlc2NyaXB0aW9uOgovLyAgIE1hcHMgYSBudW1lcmljIHRlc3Qgc2NvcmUgKDDigJMxMDApIHRvIGEgbGV0dGVyIGdyYWRlLgovLyAgIFRoZSBncmFkaW5nIHNjYWxlIGlzIGFzIGZvbGxvd3M6Ci8vICAgICAgIDkw4oCTMTAwIC0+ICdBJwovLyAgICAgICA4MOKAkzg5ICAtPiAnQicKLy8gICAgICAgNzDigJM3OSAgLT4gJ0MnCi8vICAgICAgIDYw4oCTNjkgIC0+ICdEJwovLyAgICAgICAw4oCTNTkgICAtPiAnRicKLy8gICBBbnkgc2NvcmUgb3V0c2lkZSAw4oCTMTAwIHJldHVybnMgJ0knIChpbnZhbGlkKS4KLy8KLy8gUGFyYW1ldGVyczoKLy8gICBzY29yZSAtIG51bWVyaWMgdGVzdCBzY29yZQovLwovLyBSZXR1cm5zOgovLyAgIExldHRlciBncmFkZSAoJ0EnLCAnQicsICdDJywgJ0QnLCAnRicsIG9yICdJJykKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKY2hhciBjYWxjTGV0dGVyR3JhZGUoaW50IHNjb3JlKQp7CiAgICBjaGFyIHJlc3VsdDsgLyogbGV0dGVyIGdyYWRlIHJlc3VsdCAqLwoKICAgIC8vIG1hcCBzY29yZSB0byBsZXR0ZXIgZ3JhZGUKICAgIGlmIChzY29yZSA+PSA5MCkKICAgICAgICByZXN1bHQgPSAnQSc7CiAgICBlbHNlIGlmIChzY29yZSA+PSA4MCkKICAgICAgICByZXN1bHQgPSAnQic7CiAgICBlbHNlIGlmIChzY29yZSA+PSA3MCkKICAgICAgICByZXN1bHQgPSAnQyc7CiAgICBlbHNlIGlmIChzY29yZSA+PSA2MCkKICAgICAgICByZXN1bHQgPSAnRCc7CiAgICBlbHNlIGlmIChzY29yZSA+PSAwKQogICAgICAgIHJlc3VsdCA9ICdGJzsKICAgIGVsc2UKICAgICAgICByZXN1bHQgPSAnSSc7IC8qIGludmFsaWQgc2NvcmUgKi8KCiAgICAvLyBjaGVjayBmb3IgaW52YWxpZCB2YWx1ZXMgb3ZlciAxMDAKICAgIGlmIChzY29yZSA+IDEwMCkKICAgICAgICByZXN1bHQgPSAnSSc7CgogICAgcmV0dXJuIHJlc3VsdDsKfQ==