開発環境
- OS X Lion - Apple (UNIX) (OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- C (プログラミング言語)
- Clang (コンパイラ)
C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の8章(他の制御文)、8.5(プログラミング実習)、実習 8-7を解いてみる。
その他参考書籍
- プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)
- プログラミング言語Cアンサー・ブック 第2版 (クロビス・L.トンド、スコット・E.ギンペル(著)、矢吹 道郎(翻訳))
実習 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 コメント:
コメントを投稿