検索結果 5979 件

by みけCAT
4時間前
フォーラム: C言語何でも質問掲示板
トピック: 円と回転四角形(長方形)の当たり判定
返信数: 2
閲覧数: 37

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

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

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

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

Re: delay関数について

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

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
閲覧数: 437

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
閲覧数: 217

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

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

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

Re: malloc関数とfree

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

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

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

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

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

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

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

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

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

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

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

コード:

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

コード:

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

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

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

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

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

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

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

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
閲覧数: 392

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

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

コード:

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

Re: 文字化けについて

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

Re: mingw64でのDxlib使用法

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

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
閲覧数: 664

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

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

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

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

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

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
閲覧数: 1686

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
閲覧数: 2120

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

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

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])することができれ...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 1996

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

main関数でjudgeの範囲外にアクセスしてしまう可能性がありますね。
judge[i]ではなく、judge[cir_color[i]]とするべきような気がします。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド式の計算について
返信数: 5
閲覧数: 1557

Re: 逆ポーランド式の計算について

「文字」と「文字列」をしっかり区別しましょう。 exprに入るのは「文字列」です。 expr[i]でそれぞれの「文字」が得られます。 a, s, m, dに入っているのは「文字」です。 「文字列」同士の比較にはstrcmpが使えますが、「文字」同士の比較には直接==演算子などを使うべきです。 「文字」は文字コード(整数)を用いて表され、 数字を表す文字コードは通常その数字とは異なります。 例えば、数字0を表す文字コードは'0'であり、ASCIIなら48です。 従って、文字が数字か判定するには、数値の0や9ではなく文字(コード)の'0'や'9'と比較するべきです。 もしくは、ctype.hを#i...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 1996

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

main関数内のx, y, vx, vyはそれぞれ3要素しか無いのに、ballcountを3から増やしてしまうと、
配列の範囲外にアクセスすることになり、危険です。
cir_colorだけでなく、色球のパラメータ全てについて、十分な要素数を確保しないといけません。
色球1個分のパラメータを構造体にまとめ、その構造体の配列を用意するのもいいかもしれません。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 通信関係
返信数: 3
閲覧数: 2278

Re: 通信関係

オフトピック
本題とは関係ないと思いますが、AddChatLog関数やAddServerLog関数などで、
入力の文字列がそのまま含まれる文字列をノーチェックで
fprintf_s関数やprintf_s関数の書式として渡す可能性がありますね。
このようなことをしてしまうと、%を含む文字列を入力されたときに予期せぬ動作を引き起こすことに繋がり、
危険です。
整形を行った後の文字列をそのまま出力するには、fputs関数を使う方がいいでしょう。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 作ってみたプログラムが動作しないです
返信数: 12
閲覧数: 3905

Re: 作ってみたプログラムが動作しないです

(rand関数からは0~RAND_MAXの整数が全て等確率で返るすると)
商を使うにしろ余りを使うにしろ別の何かを使うにしろ、
0~RAND_MAXの整数から欲しい範囲の整数にマップすることになるので、
(RAND_MAX+1)が欲しい整数の種類数で割り切れない場合は、必ず等確率ではなくなります。
等確率にしたければ、割り切れない端の部分の数が出たら捨ててやり直すのがいいでしょう。

参考:いつからその方法で偏りのない乱数が得られると錯覚していた? - アスペ日記

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