2014年2月10日月曜日

開発環境

C++実践プログラミング (スティーブ オウアルライン (著)、Steve Oualline (原著)、Steve Oualline(原著)、望月 康司(翻訳)、クイープ(翻訳) 、オライリー・ジャパン)のⅡ部(シンプルなプログラミング)の8章(ほかの制御文)、8.4(プログラミング実習)、実習 8-5.を解いてみる。

その他参考書籍

実習 8-5.

コード(BBEdit, Emacs)

sample.cpp

#include <iostream>

int n;
int a, b, c;

int main()
{
    std::cout << "数字(0から100まで)を入力: ";
    std::cin >> n;
    if (n > 100 || n < 0) {
        std::cout << "1から100までの数字を入力して下さい。\n";
    } else {
        a = n / 100;
        n %= 100;
        b = n / 10;
        n %= 10;
        c = n;
        if (a == 1) {
            std::cout << "one hundred ";
        }
        if (b == 1) {
            switch (c) {
                case 0:
                    std::cout << "ten";
                    break;
                case 1:
                    std::cout << "eleven";
                    break;
                case 2:
                    std::cout << "twelve";
                    break;
                case 3:
                    std::cout << "thirteen";
                    break;
                case 4:
                    std::cout << "fourteen";
                    break;
                case 5:
                    std::cout << "fifteen";
                    break;
                case 6:
                    std::cout << "sixteen";
                    break;
                case 7:
                    std::cout << "seventeen";
                    break;
                case 8:
                    std::cout << "eighteen";
                    break;
                case 9:
                    std::cout << "nineteen";
                    break;
                default:
                    break;
            }
        } else {
            switch (b) {
                case 2:
                    std::cout << "twenty";
                    break;
                case 3:
                    std::cout << "thirty";
                    break;
                case 4:
                    std::cout << "forty";
                    break;
                case 5:
                    std::cout << "fifty";
                    break;
                case 6:
                    std::cout << "sixty";
                    break;
                case 7:
                    std::cout << "seventy";
                    break;
                case 8:
                    std::cout << "eighty";
                    break;
                case 9:
                    std::cout << "ninety";
                    break;
                default:
                    break;
            }
            if (b != 0 && c != 0) {
                std::cout << '-';
            }
            switch (c) {
                case 1:
                    std::cout << "one";
                case 2:
                    std::cout << "two";
                    break;
                case 3:
                    std::cout << "three";
                    break;
                case 4:
                    std::cout << "four";
                    break;
                case 5:
                    std::cout << "five";
                    break;
                case 6:
                    std::cout << "six";
                    break;
                case 7:
                    std::cout << "seven";
                    break;
                case 8:
                    std::cout << "eight";
                    break;
                case 9:
                    std::cout << "nine";
                    break;
                default:
                    break;
            }
        }
        std::cout << '\n';
    }
    
    return (0);
}

Makefile

#
# FSFのg++コンパイラ用のMakefile
#
CC=g++
CFLAGS=-g -Wall
all: sample

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

clean:
 rm sample

入出力結果(Terminal)

$ make && ./sample
g++ -g -Wall -o sample sample.cpp
数字(0から100まで)を入力: 85
eighty-five
$ ./sample
数字(0から100まで)を入力: 100
one hundred 
$ ./sample
数字(0から100まで)を入力: 15
fifteen
$

0 コメント:

コメントを投稿