2012年6月18日月曜日

開発環境

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

実習8-7.

コード(TextWrangler)

#include <stdio.h>
char line[100];
int num, ten, one;
int main(){
  printf("数値(1~100)を入力: ");
  fgets(line,sizeof(line),stdin);
  sscanf(line,"%d",&num);
  ten = num / 10;
  one = num % 10;
  if(num == 100){
    printf("one hundred");
  } else if(num == 0){
    printf("zero");
  } else if(ten == 1){
    switch(one){
      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:
        printf("?");
    }
  } else if(1 < ten && ten < 10) {
    switch(ten){
      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;
    }
    if(one != 0){
      printf("-");
      switch(one){
        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");break;
      }
    }
  } else {
    printf("?");
  }
  printf("\n");
  return (0);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
数値(1~100)を入力: 85
eighty-five
$ ./sample
数値(1~100)を入力: 13
thirteen
$ ./sample
数値(1~100)を入力: 100
one hundred
$ ./sample
数値(1~100)を入力: 0
zero
$ ./sample
数値(1~100)を入力: 50
fifty
$

0 コメント:

コメントを投稿