プログラミング言語C K&R著の演習問題を解答していく その1
昔、N88-Basicを写経して遊んだ後、チャレンジしたけれど関数とか用語で挫折したC言語に大人になってからのリベンジ。
C言語のバイブルと言われる、K&Rの「プログラミング言語C」を第一章から読み進めて演習問題を記録していく。
- 作者: B.W.カーニハン,D.M.リッチー,石田晴久
- 出版社/メーカー: 共立出版
- 発売日: 1989/06/15
- メディア: 単行本
- 購入: 28人 クリック: 721回
- この商品を含むブログ (206件) を見る
第1章
- 1-1
#include <stdio.h> int main(){ printf("Hello,world!\n"): }
;を;に変えてコンパイル
1-1.c:4:27: error: expected ';' after expression printf("Hello,world!\n"): ^ ;
- 1-2
int main(){ printf("hello,world\x"); }
1-2.c:4:22: error: \x used with no following hex digits printf("hello,world\x"); ^~ 1 error generated.
- 1-3
int main(){ float fahr, selsius; int lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; printf("fahr-selsius conversion table\n"); while(fahr <= upper){ printf("%3.0f %6.1f\n", fahr, ((5.0/9.0) * (fahr - 32.0))); fahr += step; } }
- 1-4
int main(){ float selsius; int lower, upper, step; lower = 0; upper = 300; step = 20; selsius = lower; while(selsius <= upper){ printf("%3.0f %6.1f\n", selsius, ((9.0/5.0) * selsius + 32.0)); selsius += step; } }
- 1-5
int main(){ float fahr; for(fahr = 300; fahr >= 0; fahr = fahr - 20){ printf("%3.0f %6.1f\n", fahr, ((5.0 / 9.0) * (fahr - 32.0))); } }
- 1-6
int main(){ int c; printf("%d",(c = getchar()) != EOF); }
- 1-7
int main(){ printf("%d", EOF); }
- 1-8
int main(){ int ns, nt, nnl; int c; ns = nt = nnl = 0; while((c = getchar()) != EOF){ //getchar()はエンターが入力される度実行される。 if(c == ' '){ ++ns; }else if(c == '\t'){ ++nt; }else if(c == '\n'){ ++nnl; }else{ } } printf("space => %d, tab => %d, newline => %d\n",ns, nt, nnl); }
- 1-9
int main(){ int c; while((c = getchar()) != EOF){ if(c == ' '){ while(c == ' '){ c = getchar(); } putchar(' '); } putchar(c); } }