検索結果 6632 件

by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 12009

Re: 条件式のelseの書き方

まず、未定義の識別子mojiおよびm、および未初期化の変数middleが使われているのが致命的ですね。 このような致命的なミスがあるにもかかわらず「行数は表示されます」ということは、 このコードではなく別のコードを実行していると考えられます。 意図通りのコードを実行するよう気をつけてください。 (例えばファイル名やディレクトリの間違い、およびコンパイル忘れに注意) その前でreturnしているので、18~21行目は実行されないダミーですね。 仮に関数mojiが副作用が無く整数を返す関数である場合、その返り値は必ず0または正または負なので、 61~62行目のelse句は実行されず、意味が無いです...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 授業でわからないところがあったので質問です
返信数: 2
閲覧数: 2597

Re: 授業でわからないところがあったので質問です

フォーラムルールを読み、従ってください。

課題の丸投げ(問題文だけ書く事)は禁止です。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 再帰関数 総和問題
返信数: 7
閲覧数: 3929

Re: C言語 再帰関数 総和問題

m<nのとき、「mからnまでの和」は、「m+(m+1からnまでの和)」と表すことができます。
m=nのとき、「mからnまでの和」はmです。
sumof関数の実装は、これをプログラムにすればいいでしょう。

さらに、sumof関数を呼び出すため、main関数のscanfの呼び出しとprintfの呼び出しの間に、

コード:

S = sumof(b, a);
を追加するといいでしょう。
(a, bとm, nの対応関係に注意)
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 配列を使って様々な値を求める方法(素人質問ですみません)
返信数: 6
閲覧数: 10746

Re: 配列を使って様々な値を求める方法(素人質問ですみません)

box さんが書きました:
1年前
ちょっとだけ手直ししました。
貼ってあるコードは同じに見えます。
scanfの戻り値を無視している (値を読めたかを確認していない) のはあまり良くなさそうですね。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームの敵の弾を連続して発射
返信数: 4
閲覧数: 2743

Re: シューティングゲームの敵の弾を連続して発射

敵が連続して弾を発射するようなコードに書き換え、
(コンパイルが必要な言語であればコンパイルして)実行すればいいと思います。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で数あてゲームを作りたい
返信数: 1
閲覧数: 2009

Re: C言語で数あてゲームを作りたい

入力履歴として出力している添字が不適切です。

コード:

for (j = 11-i; j > 0; j--)
のかわりに

コード:

for (j = 10; j > 0 && j >= i; j--)
とするといいでしょう。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: Makefileでのエラー
返信数: 1
閲覧数: 2188

Re: Makefileでのエラー

popopo516 さんが書きました:
1年前
必要なファイルやディレクトリはちゃんとあります。
というのがもし本当だとすると、
・本当は AcceptTCPConnection.o は利用しないはずのに、誤って利用するように書いてしまっている
・AcceptTCPConnection.c または AcceptTCPConnection.o を生成するためのルールを書き忘れた、誤って消したなどで抜けている
などが考えられます。

ただ、これが本当でないと考えるほうが自然でしょう。
参照されているファイルが「正しいファイル名で」(typo注意)「正しいディレクトリに」あるかを確認してください。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 3分木の実装について
返信数: 6
閲覧数: 6390

Re: 3分木の実装について

こちらではSegmentation Faultを再現できませんでした。
・コンパイルや実行をしているのが本当にこのコードかを確認してください。
 ・最新のコードを保存しましたか?
 ・作業ディレクトリは正しいですか?
 ・最新のコードをコンパイルしましたか?
・デバッガやprintfデバッグなどで、具体的にどこで落ちているかを確認してください。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: for文を使ったセーブ機能について
返信数: 5
閲覧数: 3198

Re: for文を使ったセーブ機能について

白雪 さんが書きました:
1年前
これの『10 + ((z % 3) * 416), 30 + ((y % 4) * 169)』この部分のことでしょうか?
いいえ。
どの要素を表示するかを決めるxを、Mouse_CL != 0 の時しか更新していないのが気になった、ということです。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: for文を使ったセーブ機能について
返信数: 5
閲覧数: 3198

Re: for文を使ったセーブ機能について

ところで、Dateの内容を表示する時、「描画する位置に応じた要素」ではなく
「0番目または今回のループでGame_Save関数に渡した場所の要素」を使用しているのはなぜでしょうか?
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: for文を使ったセーブ機能について
返信数: 5
閲覧数: 3198

Re: for文を使ったセーブ機能について

適当にコードを補って動かしてみた結果、Game_Save関数にはクリックした場所に対応する番号が渡されていました。 よって、Game_Save関数もしくはその他の未公開の部分にバグがあると推測できます。 #include <DxLib.h> #include <vector> struct Date_s { int Year, Mon, Day, Hour, Min, Sec; Date_s() : Year(0), Mon(0), Day(0), Hour(0), Min(0), Sec(0) {} }; void Game_Save(int x) { printfDx("saved %d\...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++20で多量のthreadを一括発行と自動同期する方法
返信数: 8
閲覧数: 3376

Re: C++20で多量のthreadを一括発行と自動同期する方法

難しい問題に多くの人に早く聞きたいですね。何が悪いの? フォーラムルール 違反です。 相互リンクすればマルチポストOK 相互リンクした場合のみ複数の掲示板で同じ質問しても OK 複数の掲示板で同じ質問をすることをマルチポストといい、大抵禁止されています。 しかし、ここでは相互リンクし、リンク先の掲示板でマルチポストが許されていれば マルチポストはOKとしています。複数の掲示板で同じ質問をするときは相互リンクし、 どこの掲示板で同じ質問をしているか明確にして下さい。 「 相互リンクした場合のみ 複数の掲示板で同じ質問しても OK」となっています。 今回の場合、相互リンクなしで複数の掲示板で同じ...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++20で多量のthreadを一括発行と自動同期する方法
返信数: 8
閲覧数: 3376

Re: C++20で多量のthreadを一括発行と自動同期する方法

threadをvectorに入れるといいでしょう。 #include <iostream> #include <thread> #include <vector> void hoge(int a, int b) { std::cout << a << ' ' << b << std::endl; } int main(void) { std::vector<std::thread> thr; const int N = 1000; for (int i = 1; i <= N; i++) { thr.emplace_back(hoge, 10 * i, i); } for (auto& t :...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 降順ソートのプログラムにしたい
返信数: 13
閲覧数: 13228

Re: 降順ソートのプログラムにしたい

昇順ソートのプログラムを作って、最後に配列の中身を逆順にする処理を入れれば、降順ソートになるでしょう。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 降順ソートのプログラムにしたい
返信数: 13
閲覧数: 13228

Re: 降順ソートのプログラムにしたい

yunyun さんが書きました:
1年前
降順にソートするプログラムに変更したいです。
すればいいでしょう。
質問はありますか?
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 15822

Re: ヒープソートの比較回数と交換回数

box さんが書きました:
1年前

コード:

    downheap(0, n);
じゃないとダメ、とか?
引数のfrom, toの意味合いからして、そんな気がしないでもない。
main関数内でa[n-1]までしか値を設定していないこと、
そしてdownheap関数内でa[to]まで参照されそうなことから考えると、

コード:

    downheap(0, n-1);
の方が良さそうな気がしますね。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 15822

Re: ヒープソートの比較回数と交換回数

こちらでは、「どこからも呼ばれている形跡がなさそうな」 いちばん下の方にあるheapsortっていう関数で nが未定義 っていうコンパイルエラーが出ましたが…。 heapsortは呼ばれていなかったのですね。 見落としました。申し訳ありません。 あらためてコードを読んだところ、 for (i = 0; i < n; i++) { a[i] = random() % n ; /* 配列要素に乱数値を設定する */ } downheap(i,n); /* ヒープソートを実行 */ という部分において、nは正の値で、 i < n が成り立たなくなるまでiの値を0から1ずつ増やしながらループした直後...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 15822

Re: ヒープソートの比較回数と交換回数

ソートする要素の個数と思われる変数nがdownheap関数およびheapsort関数以外からは見えない位置に置かれており、
n = 0 のまま書き換えられていません。
よって、0個の要素をソートすることになり、比較関数および交換回数が0というのは正しい値です。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 比較回数と交換回数の表示
返信数: 1
閲覧数: 1909

Re: 比較回数と交換回数の表示

ヒープソートで比較回数comp++;と交換回数swap++;の挿入場所が分からないです。 比較回数は比較をしている部分に j = i*2; if (j+1 <= to && (comp++, a[j] > a[j+1])) /* 挿入 */ 交換回数は交換をしている部分に for (i = n; i >= 2; i--){ swap++; /* 挿入 */ tmp = a[1]; 挿入するのが自然でしょう。 いろいろな所に試しても、回数表示が0になります。 提示されていない部分にバグがあるかもしれません。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: RLC回路の数値計算がエクセルとずれてしまいます
返信数: 4
閲覧数: 6137

Re: RLC回路の数値計算がエクセルとずれてしまいます

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。

1/64 は整数同士の割り算なので、切り捨てられて0になります。
1.0/64 としてみてください。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリを使わずにタイトル画面とゲーム画面を作りたい
返信数: 4
閲覧数: 2780

Re: DXライブラリを使わずにタイトル画面とゲーム画面を作りたい

まずはあなたのプログラムを動かすターゲット、およびどうやって画面を出すかを決めましょう。 例えば ・パソコン (クライアント端末) の機械語で動かす  ・一般的に使われるOSの上で動かす   ・Windows API   ・OpenCV   ・SDL   ・Qt  ・一般的なOSは使わずに動かす   ・BIOSから呼び出されるプログラム (0x7c00にロードされるやつが有名)   ・UEFIアプリケーション ・Webブラウザ上に画面を出す  ・CGI (サーバ側で動かす)  ・WebAssembly (クライアント側で動かす) ・マイコンで動かす  ・グラフィック液晶/有機EL (各種シリア...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタとアドレス
返信数: 7
閲覧数: 8129

Re: ポインタとアドレス

関数の引数における int array[] は int* array を意味するシンタックスシュガーなので、
配列ではなくポインタの値のコピーが渡ることになります。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタとアドレス
返信数: 7
閲覧数: 8129

Re: ポインタとアドレス

関数f2の引数gnは関数f1から渡される*gnのコピーなので、
関数f2内で引数gnを書き換えても関数f1における*gnには影響しません。
そして、関数mainのgnや関数f1の*gnを書き換えるコードは存在しないので、
関数main内の変数gnの値は初期化した時の0のままとなります。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 7582

Re: 最小値が出力できない、(ド素人質問です)

if (n == 0) break; else { min = n; max = n; } の部分で、0でない値が入力された場合常にminおよびmaxをnに設定してしまいますね。 ここでは、最初の入力でのみminおよびmaxを設定するようにするとよいでしょう。 例えば int n, average, max, min; int isFirst = 1; /* 最初の入力かを表す変数を追加 */ int total = 0; int times = 0; while (1) { printf("数字を入力して下さい(0で終了)"); scanf("%d", &n); if (n == 0) b...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: sqlite3_prepare_v2でエラー処理に入ってしまいます
返信数: 7
閲覧数: 8382

Re: sqlite3_prepare_v2でエラー処理に入ってしまいます

insert の対象である MY_DATA テーブルが無いためにエラーになっている可能性が考えられます。
参照している MY_DATA.db が(正しいディレクトリに)存在するか、
正しく MY_DATA テーブルを作ったか(テーブル名にtypoが無いかなど)を確認してください。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 条件を増やすか否か
返信数: 6
閲覧数: 3038

Re: 条件を増やすか否か

例えば Compiler Explorerでコンパイル してみると、以下のようになりました。 extern int mode, oldData, newData; #define AUTO 123 void test1(void) { if(mode == AUTO) oldData = newData; } void test2(void) { if(mode == AUTO && oldData != newData) oldData = newData; } test1: cmpl $123, mode(%rip) je .L4 ret .L4: movl newData(%rip), ...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: ナップサック問題について
返信数: 3
閲覧数: 1802

Re: ナップサック問題について

ATAT13621 さんが書きました:
1年前
再帰呼び出しのret_priceが指す先に格納された値を無視しているというのが具体的にどういうことなのか理解できませんでした.
ret_priceが指す先に格納された値を読み出さず、次の再帰呼び出しや間接演算子を用いた代入により上書きしてしまっている、ということです。
ATAT13621 さんが書きました:
1年前
また, 価値を比較したあと, 大きい方の重量を算出するためにはどのようにすればよいかも分からず行き詰ってます.
大きい方の価値が得られた再帰呼び出しの戻り値を、「大きい方の重量」として採用すれば良いです。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: ナップサック問題について
返信数: 3
閲覧数: 1802

Re: ナップサック問題について

・knapsack関数の返り値 (重量) をv (価値) 系の変数に代入している
・再帰呼び出しにより ret_price が指す先に格納された値を無視している
・重量と価値を独立に比較し、小さくない方を採用している
というのがおかしいですね。

・再帰呼び出しする際、 ret_price にポインタを渡す用の新しい領域 (変数) を用意し、渡すようにする
・格納された値 (価値) を比較し、小さくない方が得られた方に対応する返り値 (重量) を採用するようにする
というようにすると改善するでしょう。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でスリングショットゲーム
返信数: 2
閲覧数: 2490

Re: C言語でスリングショットゲーム

フォーラムルールを読み、従ってください。
niwaka1117 さんが書きました:
1年前
C言語でスリンショットゲームを作りたいのです、、、
作ればいいでしょう。
少なくとも、作ろうとするべきでしょう。
niwaka1117 さんが書きました:
1年前
学校の課題なのですが、説明が下手ですみません、、
課題の丸投げ (問題文だけ書くこと) は禁止です。
niwaka1117 さんが書きました:
1年前
有識者の皆様、よろしくお願いいたします。
何をお願いするのですか?
具体的にここのやり方がわからないなどの質問はありますか?
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でカレンダー
返信数: 6
閲覧数: 8524

Re: C言語でカレンダー

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。

ググれば例がいっぱい出てきますね。
C言語 カレンダー - Google 検索
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 中央値をifで
返信数: 4
閲覧数: 5350

Re: 中央値をifで

・共通の出力を行う部分は1個にまとめる ・それぞれの値が中央値になっているかを確認し、中央値になっているものを出力する #include <stdio.h> int main(void) { int a, b, c; /* a, b, c の入力 */ printf("(%d, %d, %d)の中央値は ", a, b, c); if ((b <= a && a <= c) || (c <= a && a <= b)) printf("%d", a); else if ((a <= b && b <= c) || (c <= b && b <= a)) printf("%d", b); els...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 中央値をifで
返信数: 4
閲覧数: 5350

Re: 中央値をifで

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。

コードしか書かれていないようですが、何か質問はありますか?
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでの個人製作について質問
返信数: 5
閲覧数: 3306

Re: DxLibでの個人製作について質問

もう一点質問になってしまうのですが、→の移動判定が高速になってしまい、キーを押し続けると高速で移動することで選択が困難な状態になってしまいます。 原因としては、毎フレームキーの入力判定を取っているため高速で移動し、選択が困難になっていると思うのですが、適切に処理をするにはどうすればいいでしょうか。 例えば、CheckHitKey関数のかわりに グローバル変数の扱いに気を使ってみよう (龍神録プログラミングの館) で紹介されているCheckStateKey関数を用い、 戻り値が1 (キーが押され始めた直後のフレームである) のときだけカーソルを移動するようにするといいと思います。 #2 ☆海美...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでの個人製作について質問
返信数: 5
閲覧数: 3306

Re: DxLibでの個人製作について質問

関数 ChooseTime において、例えば最初 Choose == 0 で右キーを押した時 1. Choose == 0 なので、 Choose += 1; により Choose = 1 となる 2. Choose == 1 なので、 Choose == 1; により Choose = 0 となる となり、結局Chooseの値が変わらないことがあります。 以下のように、1回のChooseTimeの実行につき1組のキー判定のみ実行するようにすると改善するでしょう。 (この例ではswitchを使いましたが、else ifなどでもいいでしょう) int ChooseTime() { switch ...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5391

Re: 文字列を逆順に表示したい

うーる さんが書きました:
1年前

コード:

       moji1[n]=moji2[n]
そもそもここでセミコロンが抜けているため、
提示するコードをC言語としてコンパイルしようとするとコンパイルエラーになるはずです。
何をどうやって実行しているのですか?
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5391

Re: 文字列を逆順に表示したい

プログラミングではイコールの左側に右側を入れるのですね C言語では=演算子を用いることで右辺の値を左辺の変数に代入できますが、 一般に「プログラミングではイコールの左側に右側を入れる」とは限りません。 例えば、BASIC言語では=を代入ではなく比較に用いることがあります。 なぜなんの文字列も帰ってこないのか scanf("%d",n); という行において、本来渡すべきnへのポインタ &n ではなくnの値そのものを渡してしまっているため、 nは未初期化なので読み込んだ値をデタラメな場所に書き込むようscanf関数に指示してしまい、 その結果アクセス違反となり、文字列を出力する前に強制終了してし...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: scanfでint関数がおかしくなる
返信数: 2
閲覧数: 2398

Re: scanfでint関数がおかしくなる

変数dを配列ではなく、普通のint型にするといいでしょう。
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: 違いを教えてください
返信数: 4
閲覧数: 3006

Re: 違いを教えてください

int *w = 5; ポインター変数wに、即値を直接代入することは未定義のはずです。 (0を除く)整数からポインタへの変換は「処理系定義」であり、「未定義」ではないと思います。 ( N1570 6.3 Conversions → 6.3.2.3 Pointers) ただし、 int *w = 5; printf("%d\n",w); のように、書式 %d に int* 型の値を渡すのは、書式と渡されるデータの型がマッチしないので未定義動作になります。 (N1570 7.21.6.1 The fprintf function の 9) もし、アドレス値を出力したいのであれば、 #includ...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: ムービーグラフィックの動画の再生について
返信数: 2
閲覧数: 2482

Re: ムービーグラフィックの動画の再生について

動画の再生状態を得る(GetMovieStateToGraph)のは停止中か再生かであって、終了とは関係なさそうで…… なぜそう考えるのですか? GetMovieStateToGraph 関数の説明 を見ると、 もし0が返ってきたら停止中、1なら再生中となります。  因みに動画の再生が終了するか PauseMovieGraph 関数で再生に ポーズを掛けると停止中となります。 と書かれており、停止中かどうか(かつポーズをしていないか)で動画の再生が終了したかを判定できることがわかります。 さらに、 PlayMovieToGraph 関数の説明 に載っているサンプルコードを見ると、 // ルー...
by みけCAT
1年前
フォーラム: C言語何でも質問掲示板
トピック: バブルソートの結果がうまく表示されない
返信数: 4
閲覧数: 3432

Re: バブルソートの結果がうまく表示されない

box さんが書きました:
1年前
参考までに、自分だったらこう書きます。
これはバブルソートではなく、選択ソートですね。
バブルソート縛りではなく適当なソートアルゴリズムでいいなら、
自分ならわざわざ自分でソートを実装せずにqsort関数に任せます。
box さんが書きました:
1年前
あと、元のコードで問題なのは、
外側のiに関するループは何をしてるんですか?ってことです。
比較にも何にも使ってないので、そのループ、なくていいんじゃないですか?
外側のループは、処理を繰り返すことでソートを進める役割があります。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: _kbhit()のようなキー操作
返信数: 1
閲覧数: 2682

Re: _kbhit()のようなキー操作

now_on_key が char 型なので、60fpsの時約2秒を超えて長押しすると誤動作する可能性がありますが、
他は間違いを見つけられませんでした。
(見落としがあったらごめんなさい)

MonitoringKey() を1フレームに複数回呼び出すなど、提示されていないコードに間違いがある疑いがあります。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 6110

Re: スネークゲーム、伸ばすところがうまくいかない

OnTimer()内で呼んでいるのですが、それで実行するとウィンドウが一瞬で閉じてしまいます このような場合、バグにより強制終了になっていることを疑うべきですね。 今回の場合、mPLength がグローバル変数のデフォルト値である0のままUpdate関数を実行しているため、 //★座標を後ろのパーツから更新(ひとつ前のパーツの座標にする) for ( auto i = mPLength-1; i; --i ) { の部分で i が -1 からループを開始するために範囲外へのアクセスが発生し、 i の値が十分小さくなるとアクセス先が有効なメモリ領域を外れてしまい、強制終了になることがあるようです。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 4033

Re: 一部だけ表示されない

cupa さんが書きました:
2年前
結果:mX:260 mY:20(もちろん、ランダム取得しているので毎回結果は異なります)
値は正当です。(座標)
この値は正当ではありません。
mField の各次元の要素数は FIELD_SIZE + 2 すなわち 22 しかありません。
mY:20 は大丈夫ですが、 mX:260 は範囲外になってしまいます。
範囲外にならないよう、配列の要素数を大きくするか、
座標の値が範囲内 (0以上 FIELD_SIZE + 2 未満) になるようにするべきです。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: c++ リンクエラー
返信数: 5
閲覧数: 3987

Re: c++ リンクエラー

コンパイルコマンドの main.cpp と *.cpp で main.cpp が二重にコンパイル (リンク) されてしまっているようですね。
main.cpp を消して *.cpp だけにするといいかもしれません。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ブロックが表示されない
返信数: 4
閲覧数: 3269

Re: ブロックが表示されない

put()の呼び出し以降に描画処理が全く無いようですね。
gFieldを参照した描画処理をしているforループのにput()を呼び出すべきではないでしょうか?
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: インクルードする場所(C言語の館)
返信数: 2
閲覧数: 2998

Re: インクルードする場所(C言語の館)

定義した GLOBAL を function.h 内で使うからだと思います。
C言語やC++では、定義された識別子を使いたいときは、今見ている場所より前で定義された識別子しか使えません。

龍神録プログラミングの館 - 宣言の仕方を工夫しよう
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の館のソースのある部分ができない・わからない(2)
返信数: 11
閲覧数: 5625

Re: C言語の館のソースのある部分ができない・わからない(2)

cupa さんが書きました:
2年前
この場合抜けるのはFOR文ですよね?While文は抜けないですよね?
はい。
cupa さんが書きました:
2年前
0番目の弾のフラグが0だった場合、他の弾はみられず後は飛ばされるのではないのでしょうか?
飛ばされます。
cupa さんが書きました:
2年前
ここで、breakしてると思うのですが、何故でしょうか?
最初に見つかった空き枠1個だけを利用し、弾を1個だけ出すためですね。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の館のソースのある部分ができない・わからない(2)
返信数: 11
閲覧数: 5625

Re: C言語の館のソースのある部分ができない・わからない(2)

cupa さんが書きました:
2年前

コード:

DrawFormatString(0,0,GetColor(255,255,255),"%d",image);
このようにしてみたのですが変な値が出てダメでした。
imageは配列のはずなので、それぞれの要素を出力しないとダメですね。
例えば↓

コード:

for (int color = GetColor(255, 255, 255), i = 0; i < 16; i++) {
	DrawFormatString(20 + 300 * (i / 8), 50 + 30 * (i % 8), color, "image[%d] = %d", i, image[i]);
}
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: フィールドとの当たり判定
返信数: 5
閲覧数: 3553

Re: フィールドとの当たり判定

C言語の館(9章)では、||になっていたのですがどういうことでしょうか? if(!(x<10 || x>FIELD_MAX_X-10 || y<5 || y>FIELD_MAX_Y-5)){//計算結果移動可能範囲内なら ch.x=x , ch.y=y;//実際に移動させる } ( https://dixq.net/rp/9.html より) || を使って「移動先が範囲外か」を判定し、! で論理を反転することで「範囲内か」を判定しているようですね。 また、C言語の館は初期の位置がちゃんと下の方の真ん中で、どこで初期のx,yを定義しているのでしょうか? first_ini 関数のようですね。...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: キャラの表示がうまくいかない
返信数: 10
閲覧数: 5065

Re: キャラの表示がうまくいかない

後もう一つ、frame_cntを毎フレーム0で初期化しているので、宣言だけにしたのですが、そこは直ったのですがwarningが出ます。修正したほうがいいでしょうか? 初期化されていない自動変数の値を使うと未定義動作になるので、やってはいけません。 (C++のクラスの中には何も書かなくても初期化されるものもありますが、intなどのプリミティブは初期化されません) また、この関数内でこの関数で使う変数を宣言・(初期化)しちゃっているのはよくないでしょうか? C言語の館が毎フレーム呼ばれる関数内で宣言・(初期化)していたので・・・ ものによります。 この関数の中でしか使わず、関数の実行が1回終わっ...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: キャラの表示がうまくいかない
返信数: 10
閲覧数: 5065

Re: キャラの表示がうまくいかない

起こる現象としては、起動して何もキー入力をしないと普通に前向き時のアニメーションをするのですが、 一回でも方向キーを押すと、ニュートラル状態でも正常に動きません。 方向キーを押している間は表示されるのですが、離すと消えてしまいます。 今のプログラムには、 ・左右キーを押した後離した時に、ch.imgをニュートラル用の値に戻す処理が無いので、ch.imgがどんどん増えていく ・左右キーが押されている場合、毎フレームch.imgを特定の値にセットするので、アニメーションにならない という問題がありますね。 //左右キ-が押されていなかったら for (int i = 0; i < 2; i++)...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 質問
返信数: 5
閲覧数: 3683

Re: 質問

まず、 前のトピック で指摘されている通り、トピックのタイトルの付け方を直すべきでしょう。 その際、タイトルは「質問」なんかではなく、投稿の内容を端的に示す具体的なものにしましょう。 次に、簡単なところから直していきましょう。 実行結果は「検索する文字を入力」なのに、 プログラムでは「検索する文字列を入力」となっており、余計な「列」が入っています。 また、実行結果は「文字列apple_banana_orange中に」なのに、 プログラムでは「文字列%sの中に」となっており、余計な「の」が入っています。 インデントも整えるといいでしょう。 最後に、アルゴリズムを直すべきでしょう。 適当な方法で文...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 質問2
返信数: 4
閲覧数: 3519

Re: 質問2

・宣言と定義でstr_copyの型が違う ・初期化していない配列str2の要素の値を使おうとしている ・constが付いたポインタの指すものを書き換えようとしている ・pstr1の指す位置を動かそうとしていない ・必ず2要素以上コピーするため、コピー元に空文字列を渡すと誤動作する という問題がありますね。 ↓ 修正版 #include<stdio.h> #define SIZE 100 unsigned str_copy(char *pstr1,const char *pstr2); int main(void){ char str1[SIZE]; char str2[SIZE]; print...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 質問
返信数: 7
閲覧数: 4195

Re: 質問

Yuhiwa さんが書きました:
2年前
ありがとうございます。でもまだ0になります。
合計が0になるような入力を与えると、0になりますね。
https://wandbox.org/permlink/D9vuxLtdErngiuIM
オフトピック
訳:検証して正しい合計が出ることを確認しているので、「0になる」とだけ言われても原因はわかりかねます。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 質問
返信数: 7
閲覧数: 4195

Re: 質問

0にならないようにするには、psum ではなく、psum「が指している変数」を書き換えるようにするといいと思います。 void array_sumof(int *vc,int no, int *psum){ int i; for(i=0;i<no;i++){ // psumを書き換える // psum+=*vc; // psumが指している変数を書き換える *psum+=*vc; } } また、配列の先頭要素 *vc を no 回足すのではなく、配列の各要素 vc[i-no] を足すようにしたほうがよさそうですね。 「今日中」に間に合わないようにするために待ったのではなく、単に質問を見たタイミ...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の館のソースのある部分がわかりません
返信数: 6
閲覧数: 4322

Re: C言語の館のソースのある部分がわかりません

cupa さんが書きました:
2年前
GLOBAL=externなのではないのでしょうか?別物なのでしょうか?
はい、別物ですね。
extern はC言語の予約語であり、ユーザが定義しなくても使えます。
GLOBAL はただの識別子であり、ユーザが定義(または宣言)しないと使えません。
cupa さんが書きました:
2年前
また、調べたらところ、staticやexternが付与されていない場合はデフォルトでexternがついたのと同じ、
ということらしいのですが・・・
cupa さんが書きました:
2年前
後半の(また、~)部分については関数の場合です
GLOBAL は関数でないもの(変数)について使われていますよね?
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11688

Re: ヘッダファイルについてうまくいかない

「C4530」でググった最初の2個
コンパイラの警告 (レベル 1) C4530 | Microsoft Docs
アンワインド セマンティクス って何? | の回想録

メッセージの通り、オプション /EHsc を追加すればいいのではないのでしょうか?
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11688

Re: ヘッダファイルについてうまくいかない

cupa さんが書きました:
2年前
window.h

コード:

#ifdef WINDOW_H
#define WINDOW_H

int test();    //  つまりはこういうことです

#endif WINDOW_H
また ifndef のかわりに ifdef を使っている、ということですか?
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11688

Re: ヘッダファイルについてうまくいかない

ヘッダファイルに宣言を書いてうまくいきました。 main.cpp #include <iostream> #include "test.h" int main(void) { std::cout << "main 1\n"; test(); std::cout << "main 2\n"; return 0; } test.cpp #include <iostream> void test(void) { std::cout << "test\n"; } test.h #ifndef TEST_H #define TEST_H void test(void); #endif header_te...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11688

Re: ヘッダファイルについてうまくいかない

cupa さんが書きました:
2年前
#をつけてもう一度やってみたのですが、
ifdef を ifndef にする修正もしましたか?
cupa さんが書きました:
2年前
まだ、testが定義されていません、と言われます・・・
これはコンパイル時ですか?リンク時ですか?
box さんが書きました:
2年前
window.cpp
の2行目に
#include "window.h"
と書いたらどうなりますか?
結果は変わらないと予想できます。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: マウスがホバーされたら文字を変更
返信数: 4
閲覧数: 3370

Re: マウスがホバーされたら文字を変更

条件式が悪いです。 menu[i].y >= mouseY && menu[i].y + 50 <= mouseY は、書き換えると menu[i].y + 50 <= mouseY && mouseY <= menu[i].y となりますが、これを満たす整数 menu[i​].y および mouseY は存在しません。 xについて、同様に textWidth が正のとき、条件を満たす整数 menu[i​].x および mouseX は存在しません。 (オーバーフローは考慮しないこととします) if (menu[i].x <= mouseX && mouseX <= menu[i].x + t...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームの選択項目について
返信数: 4
閲覧数: 3438

Re: ゲームの選択項目について

コード:

if (upCount == 1 // 1フレーム目
    || ( // のいずれかの時
        upCount >= LONG_THRESHOLD // aフレーム目以上
        && // で、
        (
            upCount // フレーム数から
            - LONG_THRESHOLD // aを引いた数
        ) % MOVE_INTERVAL // をbで割った余り
        == 0 // が0
    )
)
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームの選択項目について
返信数: 4
閲覧数: 3438

Re: ゲームの選択項目について

ボタンが押されているフレーム数をカウントし、 ・1フレーム目 ・aフレーム目以上で、フレーム数からaを引いた数をbで割った余りが0 のいずれかの時に移動するようにするといいでしょう。 aは長押しと判定されるまでのフレーム数、bは長押し時に移動する間隔を表します。 こんな感じかな。 (動作未確認です。typoなどあるかもしれません。) const int LONG_THRESHOLD = 30, MOVE_INTERVAL = 5; int upCount = 0, downCount = 0; while(ProcessMessage() == 0 && CheckHitKey(KEY_INP...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: for文とscanf関数を用いて行列計算プログラムをうまく作れない
返信数: 3
閲覧数: 3379

Re: for文とscanf関数を用いて行列計算プログラムをうまく作れない

行列を読み込む所で scanf に渡している書式に余計な空白が入っているため、
数値と空白を読み込んだ後、また空白以外の文字を読み込むまで次の処理に行かなくなっています。
余計な空白を削除するといいでしょう。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 7211

Re: 特定の角度を返す関数

どうしても「角度」を求めたいのであれば、三角関数が目的の値を返す角度を二分探索する方法もあるかもしれません。
dic さんが書きました:
2年前
atan2 は中身がわからないので、使えないのです。
atanは使えますか?
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 7211

Re: 特定の角度を返す関数

「角度」を求めようとせず、正規化した「方向ベクトル」を求め、それを用いて移動するのはどうですか? void Player1Input() { int PosX, PosY; PosX = PosY = 0; GetTouchInput(0, &PosX, &PosY, NULL, NULL); if ((PosX > 0) && (PosY > 0)) { double X, Y, speed; X = Y = 0; speed = 1.0; // 各辺の長さを求める double a, b, c; a = b = c = 0.0; a = (PosX - s_iPlayerPosX); b ...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: Core2とUnitV2について質問です。
返信数: 1
閲覧数: 2670

Re: Core2とUnitV2について質問です。

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 'n' was not declared in this scopeというエラーが 変数nを定義せずに使ってしまっているので、定義を追加するといいでしょう。 ついでに、変数iも定義せずに使っていますね。 // 変数nの宣言をする // | 唐突に出てきた謎の変数iの代わりに、宣言した変数nを使う // | | // v v for (int n = 0; n < NUM_LEDS; n++ ){ dig...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 制限時間から減らす
返信数: 3
閲覧数: 3131

Re: 制限時間から減らす

例えば、「残り時間」を直接持たず、「開始時刻」と「現在時刻」から計算している場合は、
「開始時刻」を前にずらすことで「その分余計に時間が経過した」すなわち「残り時間が減った」
状態を作ることができます。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 配列から共通の文字を取り出したいです
返信数: 2
閲覧数: 2889

Re: 配列から共通の文字を取り出したいです

提示されているコードは残念ながらあまり関係無さそうなので一旦消すか脇に置いて、
まずは処理対象の「配列1」と「配列2」を用意しましょう。

配列を用意したら、以下のような手順で計算をするといいでしょう。
(各配列の要素に、配列内での重複が無い場合)

コード:

1. 共通点の数を0に初期化する
2. 配列1のそれぞれの要素について
   2-1. その要素が配列2にあるか検索する
        (線形探索、二分探索、ハッシュテーブルなど適当に)
   2-2. その要素が配列2にあれば、共通点の数を1増やす
配列内に重複した要素が存在しうる場合、まずは重複した要素をどう数えるかを定義するべきですね。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 5556

Re: c言語で幾何学的模様をプログラミングする。

usao さんが書きました:
2年前
そいつらをリンクする記述(-L オプションかな)も書く必要がある.
-L オプションはライブラリがあるディレクトリを指定するオプション、
実際にライブラリをリンクする指示は -l オプションですね。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: exeでcsvファイルを読み込みたい
返信数: 1
閲覧数: 2798

Re: exeでcsvファイルを読み込みたい

できるはずです。
読み込もうとしているファイル名が正しいか、exeファイルを適切なワーキングディレクトリで実行しているかを確認してください。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 正方形の中に正方形を出力する
返信数: 4
閲覧数: 3515

Re: 正方形の中に正方形を出力する

for (i = 0; i < Ysize; i++) { for (j = 0; j < Xsize; j++) { if (iとjが表す位置が正方形の内部である) { iとjが表す位置のピクセル値を255にする; } else { iとjが表す位置のピクセル値を0にする; } } } という感じのプログラムにするといいと思います。 この中でわからない部分はありますか? char OutFile[200]; strcpy(OutFile, argv[1]); この部分は、argv[1]を直接ファイル名として使えばいいのに、無駄にデータのコピーを行い、無駄にバッファオーバーランを起こすリスク...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: nの階乗を求めるプログラム
返信数: 4
閲覧数: 2911

Re: nの階乗を求めるプログラム

あいうえお さんが書きました:
2年前
for文の初期値を2にしてはいけない理由を知りたいです。
学校の先生の教えに反し、試験の時にそうすると不正解とされるから…とかでしょうか?
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語画像処理 出力する画像のサイズを変更する
返信数: 3
閲覧数: 3379

Re: c言語画像処理 出力する画像のサイズを変更する

コードを見ると、画像ファイル中にヘッダやパディングなどは無く1ピクセルを1バイトで表現するようなので、 出力サイズを表す変数を追加し、それに従って出力データを確保、設定、書き出しするといいでしょう。 また、提示されたコードはC言語ではなくC++ですね。 C言語にするには、newのかわりにmalloc、delete[]のかわりにfreeを使うといいでしょう。 Man page of MALLOC (freeの説明も載っています) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <str...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語自由課題
返信数: 3
閲覧数: 3325

Re: c言語自由課題

「文字に関する関数」を使ってはいけないというのに注意したいですね。 例えば、 ・書式指定 文字 列を扱うprintf系やscanf系の関数 ・ 文字 の入出力を行うgetchar関数、putchar関数、getc関数、fgetc関数、putc関数、fputc関数 ・ 文字 列の入出力を行うgets関数、puts関数、fgets関数、fputs関数 などは使えなそうですね。 となると、通常のパソコン環境であれば、入出力はfread関数やfwrite関数を使用するのがいいでしょう。 システムコールや、マイコン環境におけるメモリマップドI/Oを使うという選択肢もあるでしょう。 さらに、「数学関数や文...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でSTGを作っています
返信数: 2
閲覧数: 3111

Re: C言語でSTGを作っています

g_pPlayer が NULL かをチェックせずに g_pPlayer->getPos を使ったことで落ちているようなので、
g_pPlayer->getPos など g_pPlayer をデリファレンスする前に必ず g_pPlayer が NULLでないかをチェックし、
NULL だった場合はデリファレンスしないようにするといいかもしれません。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語について質問
返信数: 2
閲覧数: 3423

Re: C言語について質問

複雑ですぐにはわからなそうなので、とりあえず作った入力データを置いておきます。

コード:

1
0.5
4
2
6
0 1 0
1 0 0
0 0 0
1 3 1
2 1 1
1.5 2 1
2
6
0 1
1 0
0 0
1 3
2 1
1.5 2
0
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語でシューティングを作ってます
返信数: 4
閲覧数: 3521

Re: c言語でシューティングを作ってます

void atari_hantei_jiki_to_tekitama(void) { if (shouhai != 0) { return; } if ((tekitama_x < jiki_x + 20) && (tekitama_x > jiki_x - 20) && (tekitama_y < jiki_y + 20) && ( tekitama_y > jiki_y - 20)) { tekitama_sonzai = 0; HP = HP + 1; } if (HP == 3) { shouhai = -1; } } 当たった時に tekitama_sonzai を0にしているもの...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のマウス座標を取得について
返信数: 3
閲覧数: 4000

Re: C++のマウス座標を取得について

・printf関数を使うため、 #include <cstdio> を追加します ・ POINT構造体 の要素はLONGなので、printf関数の仕様に合わせるためにintにキャストします ・座標を取得したいだけなのにSetCursorPosをするのは意味不明なので、削除します #include <windows.h> #include <iostream> #include <cstdio> int main() { while(1) { POINT pt; //マウスの現在の座標を取得する GetCursorPos(&pt); printf("X座標%dY座標%d", (int)pt.x,...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: javascript 最小二乗法のコード
返信数: 2
閲覧数: 3291

Re: javascript 最小二乗法のコード

呼び出そうとしている関数 S_calc が定義されていないためにエラーになっていると考えられます。
提示されたコードの後ろに

コード:

}

function S_calc(a,b) { return 0; }
function T_calc(a,b,c) { return 0; }
function solve_linear_equations(a) { return 0; }
を追加すると、エラーは出なくなりました。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: アドレス帳を作っています。
返信数: 6
閲覧数: 4763

Re: アドレス帳を作っています。

メニューは出たのですがキーを何も押せずにプログラムが終わってしまいます。 //終了 if(m == 'Q' || 'q'){ break; } この条件式は、「m == 'Q'」と「'q'」のうち1個以上が真である(0でない)とき、真になります。 'q' の値は(少なくともShift_JISおよびUTF-8では)113であり、0ではないので、これは真になります。 よって、mの値にかかわらず、条件は真となり、プログラムが終了します。 if(m == 'Q' || m == 'q'){ とするとよいでしょう。 また、名前、住所、電話番号をそれぞれ &name[j]、&jusho[j]、&denw...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ロード関数を作りたい
返信数: 1
閲覧数: 3002

Re: ロード関数を作りたい

別のソースファイルからでも使用できる配列を指すポインタを指定すれば、
別のソースファイルからでも使用できるようになると思います。

具体的なうまくいっていないコードなどはありますか?
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 戻り値をもたない関数voidを使った課題
返信数: 3
閲覧数: 3683

Re: C言語 戻り値をもたない関数voidを使った課題

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。

課題は「大文字のアルファベットを入力」のはずなのに、数値の読み書きしかしていない、というのもおかしいですね。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: Pythonでの実行エラー
返信数: 2
閲覧数: 3716

Re: Pythonでの実行エラー

tmsk さんが書きました:
2年前

コード:

ValueError: could not convert string to float: ' 0.5185022.336320e-001'
これは小数点が2個含まれる不正な文字列が入力に混ざっているために起こったエラーのようですね。
不正な文字列が含まない入力を使うことで、改善できると推測できます。
tmsk さんが書きました:
2年前
また、入力されたデータの数値を一緒にcsvファイルに書き込むプログラムの書き方がわかりません。
まず具体的にどのような形式で出力するのかを決め、それに合わせたコードを書くのがいいでしょう。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 自機の弾と敵との当たり判定処理
返信数: 5
閲覧数: 4699

Re: 自機の弾と敵との当たり判定処理

質問なのですが、std::listに抽象クラスを用いることは可能でしょうか。 使えるようですね。 #include <iostream> #include <list> #include <memory> struct AbstractClass { virtual ~AbstractClass(){} virtual void printName() const = 0; }; struct ConcleteClass1 : public AbstractClass { void printName() const override { std::cout << "ConcleteClas...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の値が正しくない
返信数: 2
閲覧数: 3323

Re: 配列の値が正しくない

C言語では、配列の添字は0から始まり、宣言時には最大の添字ではなく要素数を指定します。 今回の場合、配列 b は float[2] 型の要素を1個しか持たない配列として宣言されているので、 b[1] は確保されておらず、範囲外となります。 したがって、 scanf("%f",&b[1][0]); は、値の読み込みに成功した場合、範囲外への書き込みが発生し、周りのデータが破壊される原因となります。 質問文で言及されている b[0][1] へのアクセスがコード内に見当たらないので、この行を scanf("%f",&b[0][1]); とするべきであると予測できます。 他の修正方法としては、 ・範囲...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 原因不明
返信数: 3
閲覧数: 4337

Re: 原因不明

オフトピック
box さんが書きました:
2年前
ポインター値を%sで出力するって、これは何がしたいんですか?
なお、%sは文字列を出力するものであり、「ポインター値を%sで出力する」ことは普通ではありません。
処理系によってはNULLを%sに渡すと(null)と出力されることがありますが、そうなるとは限りません。
ポインタをprintfで出力するには、void*にキャストして%pを用います。
(CTFでは関数のポインタが格納された場所のポインタを%sに渡して
ポインタをバイナリで出力させるテクニックが使われることがありますが、これはまた別の話…)
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 原因不明
返信数: 3
閲覧数: 4337

Re: 原因不明

for (j = 0; j < 61; j++) { space[i][j] = ' '; } このループを抜けた直後、jの値は61になります。 その後 space[i][j] = 0; が実行されますが、space[​i]は61要素しか無いので、これは範囲外へのアクセスとなり、エラーの原因になります。 C言語では配列の添字は0から始まること、 および配列の宣言時には最大の添字ではなく要素数を指定することに注意し、 十分な数の要素を確保しなければいけません。 ポインター値を%sで出力するって、これは何がしたいんですか? %sは文字列(ナル文字で終端された文字の配列)の先頭へのポインタをとり、...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 自機の弾と敵との当たり判定処理
返信数: 5
閲覧数: 4699

Re: 自機の弾と敵との当たり判定処理

void CheckHit::CollisionAll()関数にあるfor(auto enemy : _list)の部分でエラーがでてしまい、デバッグが出来ない状態です。 該当部分で使われている変数? _list の宣言が提示されたコードの中にありません。 どのようなエラーが出ますか? 他クラスのstd::listにアクセスする方法があるのでしたら教えていただきたいです。 「他クラス」でstd::listにアクセスする方法を作って(アクセサの関数を作るとか、publicにするとか)、 それを利用し、「他クラス」の名前(staticの場合)またはインスタンス(staticでない場合)を指定して...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 3
閲覧数: 2064

Re: 課題

「assertに引っかからなければOK」なんですよね? /** * @desc BookListの中で,出版社の本を数える * @param (bookList) BookList * @param (publisher) 出版社 * @return 指定した出版社の本の冊数 */ int countBookByPublisher(BookList* bookList, const char* publisher) { /* [宿題] ここを実装する */ void exit(int status); /* 標準ライブラリ関数exitの宣言 */ exit(0); /* assertが呼ばれる...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヒープの使い方?修正投稿です
返信数: 5
閲覧数: 4639

Re: ヒープの使い方?修正投稿です

さらに、pop 関数内において、値を移動するだけで「余計な要素を削除する」処理が抜けているようですね。
あたっしゅ さんが書きました:
2年前

コード:

        cout << i << ":" << p << endl;
コンパイルエラーになりました。
p の代わりに、 *p とするべきではないでしょうか?
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヒープの使い方?修正投稿です
返信数: 5
閲覧数: 4639

Re: ヒープの使い方?修正投稿です

Heap_Max においても、 Heap_Min においても、pop 関数内において

コード:

            if (heap[child1] <= x)
                break;
という処理があります。
この2個のクラスでは比較が反対になるはずなのに、これは不自然ですね。
あたっしゅ さんが書きました:
2年前
STL 使うのなら、ありもん使えばいいみみ。
同意します。
std::priority_queue が使えるでしょう。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: アプリを制作したいのですが
返信数: 1
閲覧数: 3406

Re: アプリを制作したいのですが

DXライブラリは静的リンクなので、(他に依存しているランタイムが入っているなど対応した環境ならば)
DXライブラリをダウンロードしていないPCでも実行できるはずです。
「DXライブラリをダウンロードしていないPCでは実行してはいけない」的なライセンスの条件も無いはずです。

実際に「実行しても大丈夫」かどうかは、プログラムの内容などによるでしょう。
(例えば、Cドライブの内容を全部消そうとするプログラムを実行するのは危険でしょう)
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 選択肢を選んだら、その選択肢が枠に入るプログラム
返信数: 2
閲覧数: 3714

Re: 選択肢を選んだら、その選択肢が枠に入るプログラム

質問はありますか?
フォーラムルールを読み、それに沿った投稿をお願いします。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリにおけるマウス入力機能
返信数: 3
閲覧数: 4182

Re: DXライブラリにおけるマウス入力機能

とりあえず、 変数 wheel_cnt が、宣言されているだけで全く使用されていない。 MouseInput::GetStateMouse がせっかく int を返すのに、GetMousePoint のエラー処理がされていない。 leftPrevState = leftState; および rightPrevState = rightState; が、if文の両方の節に書かれている。 prevCurX や prevCurY の処理と同様、前に出した方が良さそう。 leftState や rightState のインクリメント時のオーバーフローチェックが無い。 多分20億フレームも連続して使うや...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX9のZバッファをSetTextureに設定して値を取得したい
返信数: 3
閲覧数: 3863

Re: DirectX9のZバッファをSetTextureに設定して値を取得したい

どのように解決したかを書いてください。

フォーラムルールより
トピックを立て、解決した場合は「解決しました」とだけ書かず、どうやって解決したか他の人に分かるように書いて  からトピックを終了して下さい。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の基礎がわかりません。
返信数: 3
閲覧数: 4461

Re: C言語の基礎がわかりません。

具体的にどこで詰まったかがわからないので、とりあえずPythonで書いてみました。 あとはこれを移植すればいいでしょう。 # coding: utf-8 import sys def solve(suuzi): nen = int(suuzi[0:4]) tuki = int(suuzi[4:6]) if nen < 2019 or (nen == 2019 and tuki < 5): gengou = "平成" wareki_nen = nen - 2019 + 31 else: gengou = "令和" wareki_nen = nen - 2019 + 1 if wareki_nen...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 表示が思う通りにいかない
返信数: 4
閲覧数: 4916

Re: C++ 表示が思う通りにいかない

・それぞれの配列を出力しきるまで別の配列を出力しないようにする ・初期化していない部分の値を使わないようにする などに注意して、出力がイメージ通りになるように直せばいいと思います。 #include <iostream> #include <iomanip> #include <string> using std::cin; using std::cout; using std::setw; using std::string; // 表示を開始するべき桁 (0でない最初の桁、または(全部0の場合)最後の桁) の位置を返す int getDisplayStartPoint(const int ...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 標準体重を求めるプログラム
返信数: 2
閲覧数: 3530

Re: 標準体重を求めるプログラム

課題の丸投げは禁止です。 フォーラムルール を読んで従ってください。 a. 質問は具体的にする 詳しくは「回答者が困る質問例」をご覧下さい 「うまくいきません」という質問は大抵回答に困ります。 自分は今何がしたくて どう取り組んで(作ったプログラムはどれで どのようなエラーやトラブルで困っていて 自分は何が解らないのか、知りたいのか 今のCの知識はどの程度なのか この5点をしっかりと明記して下さい。 c. 宿題の質問は OK! でも丸投げは NG! 宿題の文章だけ書いて「誰か答え教えて下さい」は× 課題の丸投げ(問題文だけ書く事)は禁止です。 ただし上のように記載してもらえればこれは当てはまり...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: メニュー画面の実装について
返信数: 7
閲覧数: 5779

Re: メニュー画面の実装について

CheckSoundMem関数はエラーの時は -1 を返します。
-1 は、条件式として使った場合は真とみなされます。
削除後のサウンドハンドルを渡すと、エラーになると予想できます。

コード:

		if (CheckSoundMem(_images[i]) == 1) {
として、「再生中」の時のみハンドルを返すようにするとどうでしょうか?

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