タグ: language-c

演習4-8 K&R プログラミング言語C

演習4-8 char buf; /* ungetch 用のバッファ */ int getch(void) /* (押し戻された可能性もある)1文字をとってくる */ { char c = buf ? buf : getchar(); buf = ‘\0’; return c; } void ungetch(int c) { buf = c; } プログラミング言語C 第2版 ANSI規格準拠 po…続きを読む

演習4-6 K&R プログラミング言語C

4.3 の電卓プログラムを修正する。 演習4-6 A-Z の各文字を変数とする。R は最近に印字された値を保存する特別な読込専用変数とする。 main 関数に変数を扱う処理を追加する。 /* 省略 */ case ‘w’: /* write variable */ push(type); break; case ‘r’: /* read variable */ push(type); break;…続きを読む

演習4-5 K&R プログラミング言語C

4.3 の電卓プログラムを修正する。 演習4-5 math.h をインクルードする。 #include <math.h> main 関数に各演算のケースを追加する。 /* 省略 */ double op1, op2; /* 省略 */ case ‘s’: /* sin */ push(sin(pop())); break; case ‘c’: /* cos */ push(cos(po…続きを読む

4.2 非整数を返す関数, 演習4-2 K&R プログラミング言語C

4.2 非整数を返す関数 atof が返す double の値は return される際に int に変換される。 これは、atoi が int を返す関数であるため。 そこで、コンパイラが警告を出さないように明示的にキャスト(型変換)している。 /* atoi : atof を使って文字列 s を整数に変換する */ int atoi(char s[]) { double atof(char s…続きを読む

演習3-6 K&R プログラミング言語C

演習3-6 文字配列に文字を入れる毎に幅 w の値をデクリメントしてゆき、最後に w の数だけスペースを入れる。 #include <stdio.h> #include <string.h> #define MAX 1024 void itoa(int n, char s[], int w); void reverse(char s[]); int main(int arg…続きを読む