#define ret_ok 1
#define ret_err 1
int judge_score(int score,char *ch)
{
if (score > 100 || score < 0 )
{
printf ("The score you input should little than 100 and bigger than 0\n" );
return ret_err;
}
switch (score/10 )
{
case 10 :
case 9 :
*ch = 'A' ;
break ;
case 8 :
*ch = 'B' ;
break ;
case 7 :
*ch = 'C' ;
break ;
case 6 :
*ch = 'D' ;
break ;
default :
*ch = 'E' ;
break ;
}
return ret_ok;
}
int main(int argc,char argv[])
{
char score = 0 ;
char ch = '0/' ;
while (scanf ("%d" ,&score)!='q' )
{
judge_score(score,&ch);
printf ("\r\nresult:%c\r\n" ,ch);
}
return ret_ok;
}
稍微优化之后的代码结构
#define ret_ok 1
#define ret_err 1
#define ALL_VALUE 10
char score_value[]={'A' ,'B' ,'C' ,'D' ,'E' ,'E' ,'E' ,'E' ,'E' ,'E' };
int judge_score_value(int score,char *score_value)
{
num = score/10 ;
if (score > 100 || score < 0 )
{
printf ("Please Input score little than 100 and bigger than 0!\n" );
return ret_err;
}
if (num == 10 || num == 9 )
*ch = score_value[0 ];
else
*ch = score_value[ALL_VALUE-num-1 ];
return ret_ok;
}