検索結果 5984 件

by みけCAT
6時間前
フォーラム: C言語何でも質問掲示板
トピック: 迷路攻略プログラム
返信数: 1
閲覧数: 46

Re: 迷路攻略プログラム

まず、変な「予想」をするのは避け、「左手法」とはどのようなアルゴリズムなのかを調べましょう。 例えば 迷路 第四章 を参考にすると、以下のようなプログラムになると思います。 //壁の状況を取得する wall = getWall(); if (!(wall & D_WALL_LEFT)) { //左に壁がない (左に進める) leftTurn(); // 左に向きを変える } else if (!(wall & D_WALL_FRONT)) { //前に壁がない (前に進める) // そのまま } else if (!(wall & D_WALL_RIGHT)) { //右に壁がない (右に進め...
by みけCAT
7時間前
フォーラム: C言語何でも質問掲示板
トピック: 最短経路の求め方
返信数: 2
閲覧数: 45

Re: 最短経路の求め方

まず、処理対象のグラフを図示してみました。 graph.png Wandbox で実行してみると、以下のようになりました。 0 17 1000000 1000000 1000000 1000000 1000000 17 0 21 7 1000000 1000000 1000000 1000000 21 0 13 5 1000000 1000000 1000000 7 13 0 1000000 5 1000000 1000000 1000000 5 1000000 0 16 22 1000000 1000000 1000000 5 16 0 25 1000000 1000000 1000000 ...
by みけCAT
2日前
フォーラム: C言語何でも質問掲示板
トピック: bmpファイルの入出力
返信数: 9
閲覧数: 209

Re: bmpファイルの入出力

読み書き両方です。
書き込み時にパディングを入れたら(そして他のソフトウェアは入れるので)、
読み込み時もパディングが入っている前提で読み込まないと、おかしくなりますよね。
by みけCAT
3日前
フォーラム: C言語何でも質問掲示板
トピック: bmpファイルの入出力
返信数: 9
閲覧数: 209

Re: bmpファイルの入出力

これはカラーテーブルが256要素あり、画素が下のものから並んでいる無圧縮256色bmpファイル専用ですね。 解析の結果、少なくとも以下の問題があることがわかりました。 readBMP関数において、ファイルを開いた直後に必ずreturn -1;しているので、 読み込み処理が行われず、writeBMPに未初期化のデータが渡されてしまいます。 複文({}で囲まれたブロック)を用いてファイルが開けなかった場合のみreturn -1;するようにするか、 return -1;を削除するといいでしょう。 せっかくbmpInfo->imageDataに確保した領域のアドレスを入れているのに、 その後の読み込み...
by みけCAT
4日前
フォーラム: C言語何でも質問掲示板
トピック: 円と回転四角形(長方形)の当たり判定
返信数: 6
閲覧数: 170

Re: 円と回転四角形(長方形)の当たり判定

「回転長方形」の表現方法がわかりませんが、仮に ・辺がx軸またはy軸と平行な長方形 ・回転の中心座標と回転角度 で表現されているとします。 このときは、 1. 円の中心座標を、長方形の回転の中心座標を中心に、長方形の回転角度×(-1)回転する 2. 回転後の円と、「辺がx軸またはy軸と平行な長方形」の当たり判定を行う で当たり判定ができると思います。 円と辺がx軸またはy軸と平行な長方形の当たり判定は、 円と長方形の当たり判定 | ftvlog によると、 ・長方形を縦(上下)または横(左右)に円の半径分伸ばした領域に円の中心が入っているか ・円の中心と長方形の四隅の距離が円の半径以下か でで...
by みけCAT
5日前
フォーラム: C言語何でも質問掲示板
トピック: 円と回転四角形(長方形)の当たり判定
返信数: 6
閲覧数: 170

Re: 円と回転四角形(長方形)の当たり判定

回転させた後の長方形の四隅の点の座標を求めて、多角形と円の当たり判定をすることでできると思います。 ある点Aを別の点(x, y)を中心に回転させた点は 1. 点Aを(-x, -y)平行移動する。これを点A'とする。 2. 1で求めた点A'を、原点を中心に回転させる。これを点A''とする。 3. 2で求めた点A''を(x, y)平行移動する。 ことで求めることができます。 多角形と円の当たり判定は、例えばこのサイト 2D衝突編その5 円と線分から多角形と円へ に載っているように、 ・円が多角形を構成するいずれかの辺(線分)に当たっている ・多角形の辺が時計回りのベクトルで表されているとき、円の中...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: c言語で避けゲーを作ってるのですがうまくいかない
返信数: 4
閲覧数: 186

Re: c言語で避けゲーを作ってるのですがうまくいかない

せっかくbom1~bom3で爆弾を描画しても、すぐにHgClearで消してしまうため、
表示されない、もしくは表示されないように見えるのだと推測できます。
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: delay関数について
返信数: 1
閲覧数: 89

Re: delay関数について

環境がわかりませんが、 例えばクロック周波数とそれぞれの命令を実行するのにかかるクロック数が決まっているマイコンであれば、 そこから計算して20usecに該当するクロック数 - ポート操作にかかるクロック数のディレイをアセンブリ言語で入れる、 という方法があります。 (例えばクロック周波数が16MHzなら、320クロックで20usec) また、タイマー割り込みが使える環境であれば、20usec間隔で割り込みがかかるようにして、 50000回(1000ms)割り込みがあったらPORTAbits.RA0 = 0x01;を実行し、 さらに次の割り込みでPORTAbits.RA0 = 0x00;を実行...
by みけCAT
3週間前
フォーラム: C言語何でも質問掲示板
トピック: UTF-8 から Shift_JIS への変換
返信数: 3
閲覧数: 323

Re: UTF-8 から Shift_JIS への変換

URLエンコードをデコードしたいということであれば、添付ファイルに入っていたnkf.exeの出力 YUKI.N>.\nkf.exe --help Usage: nkf -[flags] [--] [in file] .. [out file for -O flag] j/s/e/w Specify output encoding ISO-2022-JP, Shift_JIS, EUC-JP UTF options is -w[8[0],{16,32}[{B,L}[0]]] J/S/E/W Specify input encoding ISO-2022-JP, Shift_JIS, EUC-JP...
by みけCAT
3週間前
フォーラム: C言語何でも質問掲示板
トピック: scanf を簡略化したい
返信数: 12
閲覧数: 447

Re: scanf を簡略化したい

「C++ テンプレート 特殊化」でググって最初に出てきた テンプレートの特殊化 | Programming Place Plus C++編【言語解説】 第23章 を参考に、こんな感じでしょうか。 #include <iostream> #include <cstdio> #include <string> using std::cin; using std::string; template <typename T> T in() { T temp; cin >> temp; return temp; } template <> int in() { int temp; scanf("%d",...
by みけCAT
3週間前
フォーラム: C言語何でも質問掲示板
トピック: コードの書き方チェックお願いできますでしょうか。
返信数: 2
閲覧数: 222

Re: コードの書き方チェックお願いできますでしょうか。

配列の0番目の要素を使っておらず、学生数STUDENT_NUM_MAX-1までしか安全に処理できないので、
STUDENT_NUM_MAXという名前が紛らわしくて良くないですね。
0番目の要素を使いたくないのであれば、要素をSTUDENT_NUM_MAX+1個確保するべきでしょう。

できれば、
・入力の読み取りに成功したか (scanfの戻り値)
・入力された値が正常か (大きすぎないか、小さすぎないか)
・計算がオーバーフローするか
のチェックもあるといいでしょう。
by みけCAT
4週間前
フォーラム: C言語何でも質問掲示板
トピック: malloc関数とfree
返信数: 2
閲覧数: 190

Re: malloc関数とfree

dmatrix関数内でせっかく確保して場所を配列に登録した領域を、
実際に利用する前に開放してしまっているので、
その後の処理で寿命が付きているオブジェクトを使用することになり、未定義動作になります。
dmatrix関数内のfree(base);を削除し、main関数内のfree(a);の直前にfree(*a);を追加するといいでしょう。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: E0167 パラメーターと互換性がありません。
返信数: 2
閲覧数: 153

Re: E0167 パラメーターと互換性がありません。

文字列にTEXTマクロを使用してUNICODE/非UNICODE両対応にするのも良さそうですね。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ポインタのデリファレンスについて
返信数: 2
閲覧数: 200

Re: ポインタのデリファレンスについて

2項演算子の*(一般的には掛け算)と単項演算子の*(一般的にはデリファレンス)は違います。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ウィンドウが一瞬で消えてしまう
返信数: 2
閲覧数: 192

Re: ウィンドウが一瞬で消えてしまう

main.cpp内のwhile文の条件が、
「関数を呼び出した戻り値」ではなく「関数のアドレス」を0と比較するようになっていますね。
通常の環境では関数のアドレスは0にはならないはずなので、これでは常に偽になり、
ループに入らずに終了してしまうでしょう。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 当たり判定が追加した敵を倒しても復活してしまう
返信数: 2
閲覧数: 187

Re: 当たり判定が追加した敵を倒しても復活してしまう

「存在フラグ」のはずのflagメンバが「方向フラグ」としても使われてしまっているようなので、
方向を表すデータを別のメンバで管理するようにするといいと思います。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリの残り時間表示
返信数: 4
閲覧数: 322

Re: DXライブラリの残り時間表示

この方法のままでいくなら、secを変える分の補正を

コード:

		if(min == 0)
			min = -1;
と特殊な場合のみするのではなく、

コード:

		min--;
と一般の場合についてするようにするのがいいでしょう。
finish()を呼ぶかの判定も、それに合わせて変えたほうがいいかもしれません。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリの残り時間表示
返信数: 4
閲覧数: 322

Re: DXライブラリの残り時間表示

分と秒に分けてから残り時間に変換しようとして複雑になっているようなので、
分ける前に60*TIME_MIN-secで残り時間[秒]を出して、
それを分と秒に分けて表示するのがいいと思います。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: LoadDivGraph関数での画像の描画の仕方について
返信数: 2
閲覧数: 259

Re: LoadDivGraph関数での画像の描画の仕方について

LoadDivGraph関数を使う場合画像ハンドルを配列に格納することになることが多いと思うので、
画像ハンドルを描画関数に渡しているところを配列の適切な要素を渡すように書き換えればいいと思います。

また、LoadDivGraph関数でも画像を1個(1マス)しか読み込まないことができます。
この場合、配列ではなく画像ハンドルを格納するint型の変数へのポインタをLoadDivGraph関数に渡すことができ、
その他の書き換えはいらないでしょう。

LoadDivGraph関数を使って失敗しているコードを見せていただけると、具体的な修正点を指摘できるかもしれません。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのタイピングゲームで入力を待ってほしくない
返信数: 2
閲覧数: 261

Re: DXライブラリのタイピングゲームで入力を待ってほしくない

入力を読み込む前にClearInputCharBuf()を呼んでいるため、キー入力のデータが消されてしまい、 入力を検出できなくなっているようです。 従って、この関数の呼び出しを削除するといいと思います。 動作確認したコード (DXライブラリ Ver3.17a) #include <DxLib.h> #define STR_MAX 1024 #define QUIZ_MAX 1024 #define STR_MAX 1024 #define WINDOW_X 640 #define WINDOW_Y 480 int MainFont; int White; void ShapeRotation...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクトを返す関数
返信数: 3
閲覧数: 397

Re: オブジェクトを返す関数

myclassクラスの代入演算子がオーバーロードされていないため、

コード:

a = a.f2();
b = b.f2();
の部分でポインタの値がコピーされ、
寿命が尽きることによりまだ使う領域が開放されてしまいます。
ポインタの値ではなく、領域の内容をコピーするような代入演算子の定義をmyclassに追加するといいでしょう。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 文字化けについて
返信数: 2
閲覧数: 548

Re: 文字化けについて

これはどのようにして教えてもらったのですか?
もしファイルでもらったのであれば、文字化け?したテキストではなく
そのファイルの該当部分のデータ(バイト列)をそのまま提示していただけると、
もしかしたらわかりやすくなるかもしれません。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: mingw64でのDxlib使用法
返信数: 6
閲覧数: 934

Re: mingw64でのDxlib使用法

-m32オプションを使うことで、32ビットモードでコンパイルできるはずだと思います。
(「コンパイル」はできても、32ビット用ライブラリが無い環境だと「リンク」に失敗することがあります)
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 2次元配列のポインタ標記
返信数: 2
閲覧数: 670

Re: 2次元配列のポインタ標記

dataは「int型の要素3個の配列」の配列なので、 この式中では「int型の要素3個の配列」へのポインタになります。 したがって、これに1を足すと次の「int型の要素3個の配列」を指すことになります。 (i*3)もjも整数であり、整数を足してもデリファレンスする効果は無いので、 data+(i*3)+jはdataが指す「int型の要素3個の配列」の((i*3)+j)個先の 「int型の要素3個の配列」を指すことになります。 これを*(data+(i*3)+j)としてデリファレンスすると、「int型の要素3個の配列」になるので、 配列の先頭要素のポインタがcoutに渡されることになります。 規...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++で画像一枚のRGB値の割合を計算
返信数: 2
閲覧数: 672

Re: C++で画像一枚のRGB値の割合を計算

「RGB値の割合を計算」というのがどのような処理なのかよくわかりませんが、
画像処理といえばOpenCVでしょうか。
「OpenCV」でググる
オフトピック
Pythonのインターフェースを使えば、コンパイル不要ですぐに実行でき、
ソースコードをファイルに保存しなくてもインタラクティブに計算を試せるので便利です。
「OpenCV Python」でググる
(あ、でも「C++で」という条件でしたね。C++からでも使えるはずです。)
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 2010

Re: [c言語 Handy Graphic] クリック処理について

円の中心とマウスカーソルの距離が円の半径以内ならマウスカーソルが円の中にある、
という判定ができます。

「円の面積を求めて、その範囲内を条件として処理」というのは具体的にどのような処理なのかよくわからないので、
そう考えて良いかはわかりません。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: float型によるベクトル計算
返信数: 5
閲覧数: 953

Re: float型によるベクトル計算

//angleから0を除外する if (Angle_G[0] == 0 || Angle_G[1] == 0 || Angle_G[2] == 0) { if (Angle_G[0] == 0) { angle_X= 0.0000000000000000000000001f; } if (Angle_G[1] == 0) { angle_Y = 0.0000000000000000000000001f; } if (Angle_G[2] == 0) { angle_Z = 0.0000000000000000000000001f; } } else { angle_X = Angle_G[0...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ln3の近似値
返信数: 1
閲覧数: 1693

Re: ln3の近似値

コード中の2っぽい部分を3っぽくしたら、求まるようです。 どうしてこれでいいのかは考え中です。 #include<stdio.h> #define K 30 int keta(double S1,double S2){ int si1=(int)S1; int si2=(int)S2; int j=0; while(j<K){ S1=(S1-si1)*10.0; si1=(int)S1; S2=(S2-si2)*10.0; si2=(int)S2; if(si1==si2)break; j++; } return j; } int main(void){ int i,j,k; long n=1...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 【急募】課題手伝ってください、
返信数: 2
閲覧数: 2125

Re: 【急募】課題手伝ってください、

これは禁止されている課題の丸投げに該当し、手も足も出ないことの明記も無いようですね。
まずはフォーラムルールを読み、それに沿った質問をするのがいいでしょう。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 計算量の増加で実行時errorが発生した時の対処法
返信数: 7
閲覧数: 2030

Re: 計算量の増加で実行時errorが発生した時の対処法

int flag[N][N][N][N]は、Nの4乗個のintを確保します。 intが4バイトでN=256の場合、これは16GBになります。 そのプログラムで何をやっているかがわかりませんが、 処理内容によっては1要素のサイズを必要最低限まで減らすことで、メモリの使用量を減らすことができます。 例えばintからcharにすることで、扱える値の範囲が-128~127または0~255になる代わりに、 合計サイズを4GBに減らせます。 (もしかしたら環境によっては違うかもしれません) さらに1要素あたり1ビットに(unsigned char flag[N][N][N][N / 8])することができれ...

詳細検索ページへ移動する