2013年10月23日水曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の8章(他の制御文)、8.5(プログラミング実習)、実習 8-7を解いてみる。

その他参考書籍

実習 8-7.

コード

sample.c

#include <stdio.h>
int main()
{
    char line[100];
    int numbers;
    int h, t, o;
    printf("数値を入力: ");
    fgets(line, sizeof(line), stdin);
    sscanf(line, "%d", &numbers);
    h = numbers / 100;
    numbers -= 100 * h;
    t = numbers / 10;
    numbers -= 10 * t;
    o = numbers;
    if (h == 1) {
        printf("one hundred ");
    }
    if (t == 1) {
        switch (o) {
            case 0:
                printf("ten");
                break;
            case 1:
                printf("eleven");
                break;
            case 2:
                printf("twelve");
                break;
            case 3:
                printf("thirteen");
                break;
            case 4:
                printf("fourteen");
                break;
            case 5:
                printf("fifteen");
                break;
            case 6:
                printf("sixteen");
                break;
            case 7:
                printf("seventeen");
                break;
            case 8:
                printf("eighteen");
                break;
            case 9:
                printf("nineteen");
                break;
            default:
                break;
        }
    } else if (t >= 2 && t <= 9) {
        switch (t) {
            case 2:
                printf("twenty");
                break;
            case 3:
                printf("thirty");
                break;
            case 4:
                printf("forty");
                break;
            case 5:
                printf("fifty");
                break;
            case 6:
                printf("sixty");
                break;
            case 7:
                printf("seventy");
                break;
            case 8:
                printf("eighty");
                break;
            case 9:
                printf("ninety");
                break;
            default:
                break;
        }
        if (o != 0) {
            printf("-");
        }
    }
    if (h == 0 && t == 0) {
        printf("zero");
    } else if (t != 1){
        switch (o) {
            case 1:
                printf("one");
                break;
            case 2:
                printf("two");
                break;
            case 3:
                printf("three");
                break;
            case 4:
                printf("four");
                break;
            case 5:
                printf("five");
                break;
            case 6:
                printf("six");
                break;
            case 7:
                printf("seven");
                break;
            case 8:
                printf("eight");
                break;
            case 9:
                printf("nine");
            default:
                break;
        }
    }
    printf("\n");
    return (0);
}

makefile

CC=cc
CFLAGS=-g

sample: sample.c
 $(CC) $(CFLAGS) -o sample sample.c

clean:
 rm -f sample

入出力結果(Terminal)

$ make
cc -g -o sample sample.c
$ ./sample
数値を入力: 85
eighty-five
$ ./sample
数値を入力: 13
thirteen
$ ./sample
数値を入力: 100
one hundred 
$

0 コメント:

コメントを投稿