學生成績判斷函式介面

田園詩人之園發表於2015-08-08
#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;
}

相關文章