[c言語]ダブルポインタとmalloc()で2次元配列を作成 ダブルポインタとmalloc()で2次元配列を作成してみようと思います。 ダブルポインタと配列の関係を実感するのみ、良い取り組みだと思っています。 参考:[c・・・
「c言語」の記事一覧(2 / 6ページ目)
[c言語]素数をプログラミングで求めてみる
[c言語]素数をプログラミングで求めてみる 素数は、1より大きな整数で、1と自分自身以外に約数を持っていない(1と自分自身以外の自然数でも割り切れない)数です。 まずは、下記のように、計算量が大きくなりますが、素直に1と・・・
[c言語]enumとswitch文を使って状態遷移を実現
enumとswitch文を使って状態遷移を実現 enumで状態を定義して、switch文を使って状態遷移を実現できますね。 良くみられる手法だと思います。 enumとswitch文を使うことで、可読性が格段に上がります。・・・
[c言語]ナップザック問題を動的計画法でコーディング
再帰を使った場合 参考:[c言語]フィボナッチ数列を動的計画法でコーディング 容量Wmaxのナップザックに、N個の品物を入れる。 品物iの重さがw[i] 価値がv[i]であるときに、容量Wmaxを超えない、 かつ、価値が・・・
[c言語]トリプルポインタを関数の引数に渡して、2次元配列のメモリ確保をする
トリプルポインタを関数の引数に渡して、2次元配列のメモリ確保をする 関数内で2次元配列のメモリ確保をして、関数の引数に返すためには、その引数にはトリプルポインタを渡してあげる必要があります。 c言語でここまで操作できると・・・
最大部分配列問題をc言語で実装してみる
全探索での実装 下記のように2重ループ処理をして、全探索をします。 全ての組み合わせの合計値を順次算出して、最大値を更新していきます。 getMax()については、別途関数として実装しています。 サンプルコードを参照して・・・
[c言語]フィボナッチ数列を動的計画法でコーディング
再帰を使った場合 参考:[c言語]ナップザック問題を動的計画法でコーディング 下記がサンプルコードになります。 f(n)からf(n-1)とf(n-2)を再帰的に呼び出します。 重複計算もあって、n=45で13秒かかってい・・・
[c言語]バイナリーサーチ(二分探索)のサンプルコード
バイナリーサーチ(二分探索) まずは、下記のように、ソート・ユニークされた配列を対象にします。 int arr[MAX] = {1,3,5,6,7,9,10,11,22}; バイナリーサーチは、サーチ対象の中央を起点とし・・・
[c言語]共用体で構造体でビットフィールドを扱う
ビットフィールドを構造体で表現 構造体でビットフィールドを管理できます。 例えば、下記は、1ビット単位で4つのフィールドを定義しました。 typedef struct{ unsigned int B0 : 1; unsi・・・
[c言語]マクロを複数行にするときの注意点(コンパイルエラー対策)
対策1 if文の中にマクロを使うときは{}を使う 複数行のマクロをif文の中で使うときは、if文で{}を使うと安全度が増します。 例えば、下記のソースコードがあったとします。 $ cat sample.c #includ・・・