I00030 Grades conversion


質問:100点制の成績を「優秀」「良好」「中等」「合格」「不合格」に転換します.
一般教科書では,成績変換機能を実現するためにif文またはswitch文を用いる.それは浮雲です.
ここでは二次ルックアップ法で実現する.このように論理が簡単で、プログラムの実行速度が速く、文が簡潔です.
論理文がほとんど見えないほど簡単なプログラムが良いプログラムです.
手順は次のとおりです.
/* I00030 Grades conversion */

#include <stdio.h>

int main(void)
{
    int score;
    char *result[] = {"  ", "  ", "  ", "  ", "   "};
    int convert[] = {4, 4, 4, 4, 4, 4, 3, 2, 1, 0, 0};

    while(scanf("%d", &score) != EOF)
        if(score < 0 || score > 100)
            printf("    !
"); else printf("%s
", result[convert[score/10]]); return 0; }