2017-11-11から1日間の記事一覧

K&R演習[2-3]

課題 16進数の文字列(0xあるいは0Xが付いているものも含めて)をそれと同値な整数値へ変換するhtoi(s)を書け。 回答 #include <stdio.h> #include <string.h> int htoi(char *str); /** * @fn Main * @brief * @param * @return * @detail */ int main(void) { int i; char str[3</string.h></stdio.h>…

K&R演習[2-2]

前提 for (i = 0; i < lim - 1 && (c = getchar() != '\n' && c != EOF; i++) { s[i] = c; } 課題 forループに等価なループを、&&あるいは||を使用しないで書け 回答 i = 0; while ((c = getchar() != EOF) { if (c == '\n') { break; } if (i >= (lim - 1) …

K&R演習[2-1]

課題 char, short, int, long変数のsigned及びunsignedの両方の方について、それらの範囲を決めるプログラムを、標準ヘッダからの適当な値を印字することと、直接計算することの双方で書け。 回答 #include <stdio.h> #include <limits.h> #include <math.h> /** * @fn Main * @brief * </math.h></limits.h></stdio.h>…

K&R演習[1-24]

課題 括弧、中括弧、大括弧の釣り合いが取れていないといったプログラムの基本的な構文エラーのチェックを行なうプログラムを書け。引用符、二重引用符・コメントなどの処理も忘れないこと。 回答 /** * @file プログラミング言語C 1-24 * @brief 括弧、中括…

K&R演習[1-23]

課題 Cプログラムから全てのコメントを除去するプログラムを書け。 回答 #include <stdio.h> #include <string.h> typedef unsigned long int u8; /** * @fn Main * @brief * @param * @return * @detail */ int main(void) { int c; char str[1000]; u8 pos_str = 0, pos_start</string.h></stdio.h>…

K&R演習[1-22]

課題 入力行を入力のn文字目までにある最後の非ブランク文字の後で折りたたむプログラムを書け。 私見 「折りたたむ」の意味が分からない。 方針 「折りたたむ」はブランク文字の削除を解釈する。 回答 #include <stdio.h> #include <string.h> typedef unsigned long int u8; c</string.h></stdio.h>…