検索結果 6453 件

by みけCAT
1日前
フォーラム: C言語何でも質問掲示板
トピック: javascript 最小二乗法のコード
返信数: 2
閲覧数: 82

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

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
1週間前
フォーラム: C言語何でも質問掲示板
トピック: ロード関数を作りたい
返信数: 1
閲覧数: 187

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

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

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

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

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

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

Re: Pythonでの実行エラー

tmsk さんが書きました:
3週間前

コード:

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

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
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列の値が正しくない
返信数: 2
閲覧数: 370

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

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

Re: 原因不明

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

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
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 自機の弾と敵との当たり判定処理
返信数: 5
閲覧数: 686

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

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

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
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヒープの使い方?修正投稿です
返信数: 5
閲覧数: 626

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

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

コード:

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

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

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

コード:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コード:

		if (CheckSoundMem(_images[i]) == 1) {
として、「再生中」の時のみハンドルを返すようにするとどうでしょうか?
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メニュー画面の実装について
返信数: 7
閲覧数: 1391

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

その戻り値をStopSoundMem(ImageMusic::getIns() -> getMusic) みたいな感じで引数に用いればうまくいくと思ったのですがダメでした。 「みたいな感じ」って具体的にどのような感じなのでしょうか? getMusic関数を呼ばず、関数のポインタをStopSoundMemに渡す感じ、ということですか? 「ダメでした」「うまく機能してくれませんでした」とは、具体的にどううまく行かなかったのですか? (デタラメな値が帰る、帰る値はそれっぽいけど再生の停止ができない、など) また、このgetMusicの実装だと、_images の要素に再生中の音声が無い場合に 未初...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ジェネリック型を使ったFilter関数の使い方がわかりません
返信数: 2
閲覧数: 945

Re: ジェネリック型を使ったFilter関数の使い方がわかりません

ジェネリック型についてはよくわからないですが、とりあえずコンパイルが通るようにしてみました。 ・ std::function を使うため、ヘッダ functional を include する ・HogeTest のコンストラクタ内の文の最後にセミコロンを補う ・HogeTest のコンストラクタとデストラクタをpublicにする ・HogeTest にメンバ hoge が無いため、追加する ・main関数の返り値の型をvoidではなくintにする ・Filter 関数に渡す第一引数をstd::vectorへのポインタではなくstd::vectorにする ・ForEach が定義されていないの...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メニュー画面の実装について
返信数: 7
閲覧数: 1391

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

GameScene::update() では if (Keyboard::getIns()->getPressingCount(KEY_INPUT_ESCAPE) == 1) { というように1と比較しているのに対し、MenuScene::update()では if (Keyboard::getIns()->getPressingCount(KEY_INPUT_ESCAPE)) { と、0以外の任意の値の時に処理を行うようにしていますね。 Keyboard::getIns()->getPressingCount の仕様がわからないので確実ではないですが、 MenuSceneでもGameScen...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 弾がうまく発射できない
返信数: 6
閲覧数: 1367

Re: 弾がうまく発射できない

関数

コード:

bool PlayerOptionCollection::update()
内の行

コード:

void move();
はmove関数を宣言しているだけであり、move関数の呼び出しは行われません。
move関数を呼び出したければ、

コード:

move();
とするべきです。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 弾がうまく発射できない
返信数: 6
閲覧数: 1367

Re: 弾がうまく発射できない

ちなみにつっこまれていました配列の要素数が25だったりDefine::PBULLET_NUMだったりするのは、const static intで宣言すると配列の定義の際、要素数に用いることができなかったためです。 const static int で宣言しても要素数に使えそうですが、どのようなエラーになりましたか? namespace Define { const static int a = 4; const static int b = 100; }; void x(){ int c[Define::a][Define::b / 4]; } PlayerOptionクラス(ソースは省きま...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: キャッチゲーム
返信数: 4
閲覧数: 1037

Re: キャッチゲーム

star_main 関数において、 if (count % 60 == 0) //60カウントに一回 star_enter(); //発射 としていますが、 count を更新している部分が無いので、 count は明示的に初期化されていないグローバル変数の初期値の 0 のまま変化せず、 0 を 60 で割った余りは 0 なので、 star_enter 関数が毎回呼び出されます。 さらに、start_enter 関数において、 srand((unsigned)time(NULL)); を毎回呼び出しており、 time 関数の戻り値は秒単位の環境が多いため、 短い間隔で呼び出すと rand 関数...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 数字を10分割するプログラム
返信数: 2
閲覧数: 1103

Re: C言語 数字を10分割するプログラム

まず訂正をします。 100個のデータから生成されるデータは、1001個ではなく991個でした。 (最初のデータはそのまま使い、残り99個のデータ1個につき10個のデータが生成されると考えられるので) すると、1000個のデータを得るには残りの9個をどうやって生成するのかを考える必要があります。 そして、991個のデータを生成する部分を一般化してみました。 後は、1000個ではなく991個でよいのであれば、 入出力と間の値を計算する部分の仕様を決め、実装すれば、プログラムができるでしょう。 #include <stdio.h> #include <stdlib.h> #include <stri...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 数字を10分割するプログラム
返信数: 2
閲覧数: 1103

Re: C言語 数字を10分割するプログラム

つまり,100個のデータだとしたら,それぞれの間で等分割して1000個のデータに変換したいです. これは無理そうですね。 それぞれの区間を10分割すると、100個のデータからは1001個のデータが生成されます。 したがって、「等分割」「100個のデータを1000個のデータに変換」という条件を同時に満たすのは無理と考えられます。 ただし、データの最後が例示されていないため、最後のデータを省くことで1000個にする、という選択肢はあります。 1001個でよければ、データの分割は以下のようにできます。 #include <stdio.h> int main(void) { double dataA...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C 言語 番号振りなおしにつおて
返信数: 1
閲覧数: 1105

Re: C 言語 番号振りなおしにつおて

c言語で構造体に1から順にナンバーをつけて、それをソートしてからまた、1からつけなおすにはどうすれば良いんでしょうか? 希望の処理を行うコードを書き、実行すればいいです。 初期化のための関数を作り、代入してからfor構文を使う感じでしょうか? 自分の書きやすい形、そしてできれば後日の修正や改良がしやすい(保守性が高い)形で書けばいいでしょう。 自分がしたいのは例えば下のような用意してある構造体をあいうえお順に並び替えて②①③にしてから、それを新しく上から①②③に書き換える関数を作りたいのですがどうすればいいのでしょうか? 1. あいうえお順に並び替える 2. 番号を書き換える という処理を行...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 文字列比較のアルゴリズムについて
返信数: 4
閲覧数: 1780

Re: 文字列比較のアルゴリズムについて

hanoha1631 さんが書きました:
3ヶ月前
これ以上間違いを見つけることができません。
指摘してくれると助かります...
とりあえずすぐにわかるのは

・i=0 で範囲外の s1[i-1] や、j=0で範囲外の s2[j-1] にアクセスしている
・strcmp で比較するデータに終端のナル文字を入れていない
・変数 i を用いたループの内側にまた同じ変数 i を用いたループがあるので、
 内側のループによって変数 i の値が破壊されて外側のループがうまく回らない

あたりですね。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 文字列比較のアルゴリズムについて
返信数: 4
閲覧数: 1780

Re: 文字列比較のアルゴリズムについて

boxさんのサンプルをもとに、aiueoとiueoaのようなローテートした文字列だけを一致とするようにしてみました。 1. 長さが違っていたら、不一致とする 2. 一方の文字列を2個くっつける 3. もう一方の文字列が、2個くっつけた文字列の中に入っているかを判定する #include <stdio.h> #include <string.h> #define N (128) void getData(char s[2][N]) { int i; for (i = 0; i < 2; i++) { printf("%dつめ>", i + 1); fgets(s[i], N, stdin); s...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault (core dumped)の解決方法
返信数: 4
閲覧数: 1507

Re: Segmentation fault (core dumped)の解決方法

This question already has answers here: c - Crash or "segmentation fault" when data is copied/scanned/read to an uninitialized pointer - Stack Overflow ポインタ str を初期化せずにデリファレンスしてしまっているのが誤りです。 有効なバッファのアドレスに初期化してから入力の読み込みや処理をしないといけません。 また、バッファオーバーランを防ぐため、%s で文字列を読み込む時は読み込む最大の長さを指定するべきです。 この最大の長さは、最後にナ...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 数字を小さい順に並べるプログラム
返信数: 2
閲覧数: 1385

Re: 数字を小さい順に並べるプログラム

みけCAT さんが書きました:
3ヶ月前
まずはコンパイラ様に教えてもらいましょう
ごめんなさい、リンク先間違いです。
(編集の制限時間ギリギリでリンクが抜けていることに気がついたのででよく確認せずにリンクを貼り、
そのまま時間切れになってしまいました)
正しくは https://wandbox.org/permlink/rcRUewltC5f1jSwk
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 数字を小さい順に並べるプログラム
返信数: 2
閲覧数: 1385

Re: 数字を小さい順に並べるプログラム

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 他の回答者さんへ: 掲示板の配慮を欠いた設計により、[​i]が終了タグが無いにも関わらず斜体のタグと解釈され、 隠されているようです。 コードは引用画面から読むのが良いです。 どこが間違っているのか教えて欲しいです。 まずは コンパイラ様に教えてもらいましょう 。 prog.c: In function 'main': prog.c:39:5: error: array size missing in ...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 課題について
返信数: 3
閲覧数: 1569

Re: 課題について

コード:

int maxof(int n,a[n]) {
ここで第2引数の型名が抜けています。

コード:

int maxof(int n,int a[]) {
としましょう。
ついでに、

コード:

int minof(int n,int b[n]) {
も宣言に合わせて

コード:

int minof(int n,int b[]) {
としましょう。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: includeの利用について
返信数: 4
閲覧数: 1488

Re: includeの利用について

h1j1k1 さんが書きました:
3ヶ月前
以下のinclude文を悪用(?)した形は許されますか?
コーディングルールなどによるでしょう。
h1j1k1 さんが書きました:
3ヶ月前

コード:

char credit_list[][] = {
#include "credits.csv"
};
このコードは、配列の要素の型が不完全なのでコンパイルエラーになるでしょう。

コード:

char credit_list[][5] = {
#include "credits.csv"
};
ならコンパイルは通るでしょう。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 球と円柱の当たり判定
返信数: 10
閲覧数: 1999

Re: 球と円柱の当たり判定

make_unique さんが書きました:
3ヶ月前
私がやりたいのは円柱の丸い面の上で球のコリジョンを持ったキャラクターが戦う
というものなんですけどその判定がいるのですけどどうしましょう?
どう実装するかを考えて実装すればいいと思います。

・円柱は何個あるのか?
・円柱は動くのか?
・「戦う」とは具体的にどのような動作か?
・キャラクターの可能な動きは? (たとえばジャンプはできる?)

などによって、具体的な適切な実装は違ってきそうだと思います。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 球と円柱の当たり判定
返信数: 10
閲覧数: 1999

Re: 球と円柱の当たり判定

usaoさんの言うように、円と長方形の当たり判定に帰着させる方法が良さそうですね。 まず、 点と直線と平面と交点と距離 に載っている方法で、球の中心点から円柱の中心軸に垂線を下ろした時の交点を求めます。 すると、この交点を原点、円柱の中心軸をx軸、交点と球の中心点を通る直線をy軸 (軸の向きは適当に) とした平面を考えることができ、 その平面における球の中心点、および円柱の2個の底面と中心軸の交点の座標 (≒距離) がわかるはずです。 あとは、これらの座標と、球や円柱の半径を用いて、当たり判定をする円と長方形の座標が求まります。 mixcpp-20210809.png 円と長方形の当たり判定は...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: int型からchar*にする方法を教えて下さい、、、
返信数: 6
閲覧数: 1713

Re: int型からchar*にする方法を教えて下さい、、、

変換せずにDrawFormatString関数で直接描画するのではダメですか?
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 敵を倒しきったらEND画面へ・・・
返信数: 12
閲覧数: 1958

Re: 敵を倒しきったらEND画面へ・・・

逆に五体倒しても画面外に行ってもEND画面に行きません。どうしたらよいでしょうか。 デバッグをすればいいと思います。 敵が弾に当たった時に加え、敵が画面外に出たときにも、 「該当の敵を消して Tekikazu に1を足す」という処理をするようにするといいかもしれません。 if (Teki1Y[j] > WORLD_HEIGHT && Teki1Y[j] < -65 && Teki1X[j] > WORLD_WIDTH && Teki1X[j] < 0) { Tekikazu += 1; } この条件式だと、「WORLD_HEIGHT (正の数) より大きく、かつ-65未満」な数や、 「WOR...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 敵を倒しきったらEND画面へ・・・
返信数: 12
閲覧数: 1958

Re: 敵を倒しきったらEND画面へ・・・

どうして敵を描画するごとにTekikazuを1プラスするのか、説明できますか?

敵を倒しきったかの判定なら、敵を倒した、
すなわち弾と敵が接触して敵が消えた時にプラスした方がいいような気がします。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします
返信数: 4
閲覧数: 1623

Re: この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします

あたっしゅ さんが書きました:
4ヶ月前
 FILE* が引数なら、

コード:

FILE* fp = fopen( "filename", "r" );
tap_manage_open( fp );
とか、するのかみみ ?
tap_manage_open の引数は FILE ** なので、「FILE* が引数なら」という前提は成り立ちません。
したがって、この予想は正しいが無意味であると考えられます。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: (再投稿)この時のmanage get,manage open, manage close に入る引数がわかりません。どなたか教えてくださいませんか
返信数: 3
閲覧数: 1464

Re: (再投稿)この時のmanage get,manage open, manage close に入る引数がわかりません。どなたか教えてくださいませんか

この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします - プログラマ専用SNS ミクプラ の続きですね。 規約には明示されていないことですが、同じ内容のトピックを複数立てるのは、 情報の分散に繋がるので個人的にはよくないと思います。 また、このトピックで指摘させていただいた、 「manage get,manage open, manage close」の仕様や目的についても書かれていないようですね。 2枚目の512,513,514の宣言は気にしないでください。 どうしてですか? 回答に繋がる重要ポイントかもし...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 爆発アニメーションに関して、、、
返信数: 4
閲覧数: 1397

Re: 爆発アニメーションに関して、、、

1. 自機の弾や敵と同様に、「爆発アニメーション」の状態を監理する配列群を用意する  (存在するか、座標、アニメーションの位置を監理する) 2. 爆発した時、自機の弾や敵と同様に「爆発アニメーション」を出す 3. 存在する「爆発アニメーション」について、状態の更新と描画を行う というようにするといいと思います。 #define WORLD_WIDTH 640 #define WORLD_HEIGHT 480 #define BOMB_MAX 200 #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPre...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします
返信数: 4
閲覧数: 1623

Re: この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 余計な空白が入った [ code ] や [ /code ] は、BBCodeのcodeタグではありません。 この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします これらの関数の仕様も目的もわからないので断定はできませんが、 p_open → 適当なFILE*型変数へのポインタ p_close → p_openにポインタ...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
返信数: 7
閲覧数: 1841

Re: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。

・pの値を0で固定しており、最初の要素以外の弾についての判定をしていない ・敵と弾の両方が「存在する」とき判定をするべきなのに、「存在しない」とき判定をするようになっている ・敵と弾の存在(しない)判定の通過後、接触していないと判定した時、不適切にbreak;で判定処理を打ち切っている ・敵と弾の存在(しない)判定の通過後、接触していると判定したとき、iの値を不適切に設定している ↓直したコード for (i = 0; i < Tama; i++) { // 自機の弾iの移動ルーチン( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う ) if (JikiTamaFlag[i] ...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
返信数: 7
閲覧数: 1841

Re: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。

前言われた配列を走査する、というのがまだ理解できていなくて…どういう意味なのでしょうか 配列の要素を前から1個ずつ処理していく、という意味です。 配列 走査 - Google 検索 みけCATさんに言われたとおりに「配列を走破し・・・」ていうのを前と同じやり方でやってみたのですが ループ後に条件を満たす要素が見つかったかをチェックし、 見つかっていたらそこに対して処理を行う、という処理が無いため、同じやり方ではないですね。 弾を撃つとフリーズしてしまいます for (i = 0; i < Tama; i++) のループの内側で、変数 i の値を不適切に書き換えているため、 特殊な場合以外は無...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
返信数: 7
閲覧数: 1841

Re: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。

if (((JikiTamaX[i] > Teki1X[j] && JikiTamaX[i] < Teki1X[j] + Teki1W) || (Teki1X[j] > JikiTamaX[i] && Teki1X[j] < JikiTamaX[i] + TamaW)) && ((JikiTamaY[i] > Teki1Y[j] && JikiTamaY[i] < Teki1Y[j] + Teki1H) || (Teki1Y[j] > JikiTamaY[i] && Teki1Y[j] < JikiTamaY[i] + TamaH))) { // 接触している Teki1Flag[j] = ...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題です
返信数: 4
閲覧数: 1299

Re: 学校の課題です

%s は文字列を入出力するための書式なので、1文字分の領域しか無い char number; には使えません。 文字を入出力するには %c が使えます。 scanf("%s %s %d", p[ i ].name, &p[ i ].number, &p[ i ].scole ); のかわりに scanf("%20s %c %d", p[ i ].name, &p[ i ].number, &p[ i ].scole ); (ついでに、文字列を読み込む時はバッファオーバーフローを防ぐため読み込む最大の長さを指定する) fprintf( fp,"A %s %s %5.1d\n", p[ i ].n...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 敵がうまく表示できません、、、
返信数: 7
閲覧数: 1923

Re: 敵がうまく表示できません、、、

乱数で位置を決めるにはどうすればいいのでしょうか、 for (int f = 0; f <= TEKI_MAX; f++) { if (Teki1Flag == 0) { Teki1X = ptn,ptn2; Teki1Y += 3; DrawGraph(Teki1X, Teki1Y, Teki1Graph, true); Teki1Flag = 1; } } if (Teki1Y >= WORLD_HEIGHT && Teki1Y <= -64) { Teki1Flag = 0; } この部分のかわりに、例えば if (Teki1Flag == 0) { // 敵を出す時に Teki1X ...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 敵がうまく表示できません、、、
返信数: 7
閲覧数: 1923

Re: 敵がうまく表示できません、、、

ptn という変数をもって0~640のどこかにランダムで敵が落ちてくるようにしたいです。 ptnをどう絡めるかがよくわかりませんが、敵を出す時に位置を乱数で決めるといいと思います。 一瞬だけ右上に敵が現れ、すぐに消えてしまいます。 敵を出した時にしか敵を描画していないからですね。 if (Teki1Y >= WORLD_HEIGHT && Teki1Y <= -64) この条件式は常に偽であり、不自然です。 && ではなく || の方がいいのではないでしょうか? int Teki1X[TAMA_MAX], Teki1Y[TAMA_MAX], ... 敵関連の変数が配列になっていないです。 「...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: スペースを離すと弾が消えるのと、なぜかタイトル画面が表示されなくなりました。
返信数: 2
閲覧数: 1437

Re: スペースを離すと弾が消えるのと、なぜかタイトル画面が表示されなくなりました。

まず、前まで表示されていたタイトルが、弾を発射するようになってから表示されなくなりました。(Zを押すとスタートという設定で、真っ暗な画面でもZを押すとゲーム画面にはなります。) ScreenFlip(); を、 status == GAME の時にのみ実行するようにしているからですね。 もう一つは、スペースを押したときに弾を連射できるようになったのですが、スペースを離すと弾が消え、もう一度押すと先ほどの弾が先ほどの位置に居て、スペースを押していると弾が動きます。 「自機の弾iの移動ルーチン」を、 CheckHitKey(KEY_INPUT_SPACE) == 1 の時にのみ実行するようにして...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: グラフの隣接リストを表示させたい(深さ優先探索)(幅優先探索)
返信数: 2
閲覧数: 1415

Re: グラフの隣接リストを表示させたい(深さ優先探索)(幅優先探索)

出力する行列の各行について、深さ優先探索をする時と同様に終端まで辺のリストを走査して、 辺がある場所をマークし、最後に行を出力するといいでしょう。 //隣接リスト void printlist(void) { for(int i = 1; i <= N; i++) { // 存在する辺をマークする int edges[N + 1] = {0}; for(int j = 1; j < M; j++) { int y = a[i][j]; if(y == 0) break; edges[y] = 1; } // 行を出力する printf("%d", edges[1]); for (int j =...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [sikyuu ]二次元配列でのエラー
返信数: 3
閲覧数: 1411

Re: [sikyuu ]二次元配列でのエラー

配列をこのような形で代入して設定することはできないのが原因ですね。 今回の場合、構造体ごと初期化して代入するのがいいでしょう。 また、 struct Map stage[2]; は2要素しかないので、stage[2] は範囲外です。 十分な要素数を確保しないといけません。 #include <stdio.h> #define GYO 10 #define RETU 10 struct Map{ int map[GYO][RETU]; }; int main(void){ int i, j; struct Map stage[3]; struct Map *pstage; stage[0]=(s...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 仮引数を受け取らない関数について
返信数: 3
閲覧数: 1630

Re: 仮引数を受け取らない関数について

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 ([]で囲まれていない code や /code はcodeタグではありません) input()で使ったnumをgoukei()でも使うためにはどうすればいいでしょうか 「仮引数を受け取らない」という条件なので、グローバル変数を使うしかなさそうですね。 #include <stdio.h> /* グローバル変数 input関数やgoukei関数ではローカルでnumが宣言されていないため、これが参照される...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 弾の発射がどうもうまくいきません、、、
返信数: 8
閲覧数: 2183

Re: 弾の発射がどうもうまくいきません、、、

スペースを長押しすると弾を保持?みたいな状態で、放すと飛びます、その弾が飛んでいるときにもう一度スペースを押すと弾が消えてしまい、もう一度振り出し(つまり一発しか打てないということ)になってしまいます。 書いた通りに修正して実行してみましたが、再現せず、 予想通りスペースキーを押しっぱなしにすることで弾が連射され、 弾を20個出したところで配列に空き要素が無くなり、弾が止まりました。 (弾が画面外に抜けると、空き要素が再び生まれ、弾が再び発射されました) screenshot.png スペース長押・好きな時に弾を連射したいのですがどうしたらいいでしょうか、、、 なぜ思った通りの動作にならない...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 弾の発射がどうもうまくいきません、、、
返信数: 8
閲覧数: 2183

Re: 弾の発射がどうもうまくいきません、、、

~Flagにiをつければいいのでしょうか いいえ。 「配列を走査し、空いている場所を見つけたらその添字をiに設定」、というのはどういうことでしょうか、 if (CheckHitKey(KEY_INPUT_SPACE) == 1) { i = -1; for (int p = 0; p < Tama; p++) // 配列を走査し { if (PienTamaFlag[p] != 1) // 空いている場所を見つけたら { i = p; // その添字をiに設定 break; } } if (i >= 0) { int Pw, Ph, Tw, Th; GetGraphSize(PienGrap...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語初心者です。コードの作り方がわかりません。
返信数: 3
閲覧数: 1692

Re: C言語初心者です。コードの作り方がわかりません。

適解かどうかは一旦置いといて、まずは動くことを目指して実装してみるといいと思います。

また、このreadline関数は最初のコードに合わないようですね。
最初のコードではreadline関数に引数を3個渡していますが、#3のreadline関数の引数は2個しかありません。
また、第1引数の値を使うのであれば、未初期化の自動変数の値(不定) newsid を渡すのはまずいでしょう。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語初心者です。コードの作り方がわかりません。
返信数: 3
閲覧数: 1692

Re: C言語初心者です。コードの作り方がわかりません。

エラーメッセージの通り、readline 関数と response 関数が宣言も定義もされていないため、エラーになっています。
使用する場所の前で宣言または定義をし、どこか(別の翻訳単位でも可)で定義をしないといけません。

(readline 関数については以下の有名なライブラリ関数もありますが、引数が違うので関係無さそうです)
readline(3) manページ
readline(3): line from user with editing - Linux man page
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 弾の発射がどうもうまくいきません、、、
返信数: 8
閲覧数: 2183

Re: 弾の発射がどうもうまくいきません、、、

また、ここを修正した場合、スペースキーを押している間毎フレーム弾が出てしまいますね。
前のフレームにおけるスペースキーの状態を保持し、前のフレームでは押されていなかった場合のみ弾を出す、
のような処理を入れると動作が改善するかもしれません。
もちろん、毎フレーム弾を出したいのであればこのままでもいいかもしれません。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 弾の発射がどうもうまくいきません、、、
返信数: 8
閲覧数: 2183

Re: 弾の発射がどうもうまくいきません、、、

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 offtopicタグはcodeタグではありません。 if (CheckHitKey(KEY_INPUT_SPACE) == 1) { int Pw, Ph, Tw, Th; GetGraphSize(PienGraph, &Pw, &Ph); GetGraphSize(PienTamaGraph, &Tw, &Th); // 弾iの位置をセット、位置はボール君の中心にする PienTamaX[i] = ...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 課題を教えてください
返信数: 4
閲覧数: 1911

Re: 課題を教えてください

シェルスクリプトで書いてみました。
こっちの方がシンプルでいいかもしれません.

コード:

#!/bin/sh
sed -e "s/char/char/gi" m_sort.c > m_sort2.c
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 弾を連射するサンプルプログラムを教えてください
返信数: 2
閲覧数: 1446

Re: 弾を連射するサンプルプログラムを教えてください

ここにあります。
龍神録プログラミングの館
自機からの弾の発射は17章、弾幕は27章などです。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 課題を教えてください
返信数: 4
閲覧数: 1911

Re: 課題を教えてください

課題は「プログラムを作成せよ」であり、言語は指定されていないようなので、Perlで書いてみました。 やりたいことに合わせて適切な言語や手段を選ぶのも、重要なスキルだと思います。 #!/usr/bin/perl use strict; use warnings; open(IN, "< m_sort.c") or die "input file open error\n"; my $data = ""; while (<IN>) { $data .= $_; } close(IN); $data =~ s/char/char/ig; open(OUT, "> m_sort2.c") or die...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: インラインアセンブラ - 引数合っているはず
返信数: 7
閲覧数: 1851

Re: インラインアセンブラ - 引数合っているはず

文字列やローカル変数のアドレス(64ビット)の下位16ビットだけをdxレジスタに入れて何をしたいのかよくわかりませんが、
とりあえず int 0x2 というのは不自然に思えます。
0から作るOS開発 割り込みその1 割り込みとIDTとGDT
によると、x86の割り込みベクタの2番はNMIとなっています。
NMIは致命的なハードウェアエラーを表すのに使われるため、「落ちた」と判定されるかもしれません。
他の場所と同様に int 0x21 としたかったのではないでしょうか?
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Rangeオーバーの原因がわからない
返信数: 3
閲覧数: 1642

Re: Rangeオーバーの原因がわからない

いいえ。
i<=0 を加えてしまうと、i = 0 の時しか判定しなくなってしまいます。 (iは0からカウントアップするので)
また、既に i < al.Count という条件があるので、 i<=board.GetLength(0) を加えても意味がないでしょう。

アクセスする場所が範囲外でないという条件にしたいので、
i + 4 < al.Count や m + 4 < al.Count が使えそうと思われます。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Rangeオーバーの原因がわからない
返信数: 3
閲覧数: 1642

Re: Rangeオーバーの原因がわからない

al.Count は rowMax や colMax と同じ8になるはずですが、
例えば i = 7 の時に board[i + 1, m] にアクセスしたり、
m = 7 の時に board[i, m + 1] などにアクセスしてしまうと、範囲外になります。
アクセスする場所に合わせた変数の範囲チェックを追加するべきです。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 文字列から文字を探すプログラム
返信数: 3
閲覧数: 1761

Re: 文字列から文字を探すプログラム

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

コード:

int x, c;
scanf("%c", &c);
これは未定義動作になります。
%c は char 型の変数へのポインタを要求するので、変数 c の型は char にするべきです。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ChangeWindowMode(FALSE); の後に画像表示できない
返信数: 2
閲覧数: 1421

Re: ChangeWindowMode(FALSE); の後に画像表示できない

ChangeWindowMode関数はロードした全てのグラフィックハンドルを削除するので、
呼び出した後画像を読み込み直す必要があります。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++の宿題が分からないです。(時間差についての問題)
返信数: 3
閲覧数: 1730

Re: C++の宿題が分からないです。(時間差についての問題)

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

まずは何らかの方法で「指定の時刻」を指定しないといけないですね。
「指定の時刻」を指定したら、現在時刻と「指定の時刻」それぞれを一旦「基準の時刻から何分」で表して引き算し、
それをまた「〇日と〇時間と〇分」に変換する、という方法があります。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++の宿題が分からないです。(時間差についての問題)
返信数: 3
閲覧数: 1730

Re: C++の宿題が分からないです。(時間差についての問題)

何をお願いするのですか?
課題の丸投げは禁止です。
フォーラムルールを読み、従ってください。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 難しいです。助けてください
返信数: 2
閲覧数: 1546

Re: 難しいです。助けてください

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 例えば、average関数で ・変数sumを定義する ・day[0]を二重に足さないようにする ・配列ではなく要素数をループの条件に使う ・計算結果を返す とし、main関数ではif文の中でもaverage関数を呼ぶようにすると、とりあえず動作は改善するでしょう。 #include<stdio.h> #define NUMBER 7 int day[NUMBER]; int average(void);...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題2
返信数: 11
閲覧数: 2979

Re: 学校の課題2

%c 指定子は、1文字(もしくは文字数を指定した場合、指定された数の文字)を読み込むためのものです。 文字列を読み込むには、%s 指定子を使うといいでしょう。 また、 fscanf_関数 で文字(%c)や文字列(%s)を読み込む際は、読み込み先の後にunsigned型で読み込み先のバッファサイズを指定しないといけません。 バッファオーバーフローを防ぐため、%s 指定子を使う際は読み込む最大バイト数を指定するべきです。 最大バイト数は、終端のナル文字の分を除くためバッファサイズ-1までにするべきです。 さらに、式中の配列は(sizeof演算子や単項&演算子に渡す場合などの例外を除いて)先頭要素へ...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題 文字配列
返信数: 9
閲覧数: 2496

Re: 学校の課題 文字配列

配列の要素数だけでなく、jのループの上限も増やす必要があります。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題2
返信数: 11
閲覧数: 2979

Re: 学校の課題2

fp = fopen_s(&fp,"bodydata.dat", "r"); if (fp != 0) { fprintf(stderr, "read file error\n"); exit(1); } この部分が間違っています。 fopen_s関数 は、正常終了した場合は0、失敗した場合はエラーコードを返します。 この返り値をfpに代入してしまうと、せっかく書き込んでくれたファイルポインタを消すことになってしまいます。 if (fopen_s(&fp,"bodydata.dat", "r") != 0) { fprintf(stderr, "read file error\n"); ex...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題 文字配列
返信数: 9
閲覧数: 2496

Re: 学校の課題 文字配列

使っている文字コードは何ですか?
UTF-8の場合、カタカナは1文字を3バイトで表す(厳密には例外があるかも?)ので、
9要素しか無い配列を使うとNUL文字が入る場所がありません。
NUL文字があったときにのみ result = 1; を実行するようになっているので、
この場合9要素しか見ないのであればresultは1にはなりません。
また、inputが9要素しか無く、scanfで読み込む最大のバイト数
(NUL文字を入れるため、最大でバッファサイズより1少ない数に設定するべき)が設定されていないため、
バッファオーバーフローを起こしてまわりのデータを破壊する危険があります。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: c#
返信数: 1
閲覧数: 709

Re: c#

まずは作りたいものの仕様をはっきりさせるのがいいでしょう。 ・ユーザ1のid、ユーザ1のpwが選択された場合の表示は? ・ユーザ1のid、存在しないpwが選択された場合の表示は? ・存在しないid、ユーザ1のpwが選択された場合の表示は? ・存在しないid、存在しないpwが選択された場合の表示は? ・ユーザ1のid、ユーザ2のpw (ただしユーザ1のpwと同じ) が選択された場合の表示は? そもそもidが存在するかどうかでメッセージを変えないべきだという主張もありますが… IPA ISEC セキュア・プログラミング講座:C/C++言語編 第7章 データ漏えい対策:親切すぎるエラーメッセージの回避
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 乱数でいくつかの弾を同時に落としたい
返信数: 4
閲覧数: 1861

Re: 乱数でいくつかの弾を同時に落としたい

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 複数の弾を落とすには、複数の弾の情報を管理しないといけません。 例えばこんな感じでしょうか? (ノーチェックなのでもしかしたら間違っているかもしれません) #include <stdio.h> #include <stdlib.h> #include <handy.h> #define NUM_TAMA 5 int main() { int i; int x[NUM_TAMA]; int y[NUM_T...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 2966

Re: 学校の課題

box さんが書きました:
5ヶ月前
lmsq関数に、meanxやmeanyで計算した
mxやmyの値を渡さなくていいんですか?
それほど重い処理じゃないでしょうし、lmsq関数内で(meanxやmeanyで)計算しなおせば、
値を渡す必要は無いでしょう。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 2966

Re: 学校の課題

このコメントアウトした部分を削除します。

コード:

float mx, my, /* * pa, * pb, */ u = 0, v = 0 /* , x[10], y[10] */ ;
ところで、mx, my の値も未初期化のまま使われていますね…よくないですね…
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: プロットした円の消去
返信数: 1
閲覧数: 1454

Re: プロットした円の消去

Circle(x,y,5,6)の前に system("cls")を書きいれたのですが、 'system’ undefindというエラーが出ました。 関数なのに定義が必要なのですか? それとも別の方法をとるべきですか? 使う関数は定義が必要ですね。 定義が無いとその関数を呼んだときに何をすればいいのかわからなくなってしまいます。 「なのに」というのは意味がよくわかりません。 system関数の定義は標準ライブラリにあるはずなので、自分で定義する必要はありません。 今回は宣言が無いのが問題ですね。 system関数 の宣言はstdlib.hに含まれるので、コード先頭に #include <std...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 水平投射されるボールのアニメーション
返信数: 3
閲覧数: 1601

Re: 水平投射されるボールのアニメーション

添付写真が実行結果です。 https://photos.google.com/photo/AF1QipNj4i5kXpi_Q-MvwfhuJDrTyubDhSV6syMcTF8w 指定のURLにアクセスするとログイン画面が表示され、ログインしてみると404が表示されました。 ユーザー登録してログインしていただくと、ファイルを添付できるようになります。 コードはまだきちんとチェックしていませんが、とりあえず if(y=0) //もしボールが床に着いたらcが増えていく { c=c+1; while(c!=0) { a=a*0.8; //a=0.8^c --c; } } という部分は、 ・if文の...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 2966

Re: 学校の課題

学校でやらされている初心者 さんが書きました:
5ヶ月前
どうすればよいでしょうか。
・boxさんの指摘通り余計な代入を消す
・lmsq関数の定義で何故か消えている引数を復活させる
・lmsq関数内で、初期化せずに値を参照しているローカル変数を消す (復活させた引数を参照できるようにする)
・lmsq関数の中のmean関数の宣言を消す (無害だけど、使われていないし紛らわしいので)
・main関数の中のlmsq関数の宣言を消す (lmsq関数の定義を不適切に書き換えたのに気づきにくい害が出ていると考えられるので)
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 2966

Re: 学校の課題

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 全角の[]を使った[code]や[/code]は、BBCodeのcodeタグではありません。 また、大変残念ながら、この掲示板は[​i]を対策なしで書くと、 終了タグが無くても斜体タグとして解釈されてしまう不親切設計となっています。 codeタグの外で書く場合は、できればU+200Bを入れたり、[ i ] のように空白を入れるなどの対策をお願いします。 エラーについては、確かに a = lmsq(x, ...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 平均頂点間距離
返信数: 1
閲覧数: 1490

Re: 平均頂点間距離

・double length[N][N];//頂点間距離 において、未初期化のNの値が使われているため、未定義動作になります。  この行は fscanf(fp, "%d %d", &N, &M); /* ファイルからN, Mを読み込む*/ の次に移動するべきです。 ・fflush(stdin); は未定義動作になります。この後標準入力は使っていないようなので、削除するべきです。 ・fopenの返り値がNULLかどうかをチェックしていないため、ファイルオープンに失敗すると危険です。  fopenの直後にチェックを追加し、NULLだったら処理を終了するようにするといいでしょう。 ・/* 隣接行列の...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列
返信数: 2
閲覧数: 1580

Re: 配列

コード:

num + i - 1
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列
返信数: 1
閲覧数: 754

Re: 配列

範囲外にアクセスすることになり動作は保証されませんが、
コードゴルフ的(指定の環境で条件を満たせばOK)には

コード:

array[]={10,5}
で指定の出力が得られることがありそうですね。
https://wandbox.org/permlink/CDXodniFgukkejcv
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 数列
返信数: 4
閲覧数: 2019

Re: 数列

提示されたコードは } が足りないため、そもそもコンパイルエラーになって値の入力すらできないはずです。
また、もし実行できたとしても、

コード:

sum += (1/sign);
は整数のゼロ除算なので強制終了の原因になりますね。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: じゃんけん
返信数: 2
閲覧数: 1606

Re: じゃんけん

このコードは じゃんけん - プログラマ専用SNS ミクプラ で提示したものと大部分が同じですね。 hand_com の計算のバグが修正してあるのは素晴らしいです。 ただ、お礼を言うのが先ではないでしょうか? フォーラムルール より引用 禁止行為について 以下の行為を禁止行為として定めます。 (中略) "C言語何でも質問掲示板"でのみ適用される事項 (中略) 質問後、お礼を言わずにトピックを閉じる、または去る行為 義務行為 "C言語何でも質問掲示板"でのみ適用される事項 トピックを立て、解決した場合は「解決しました」とだけ書かず、どうやって解決したか他の人に分かるように書いて  からトピックを...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: じゃんけん
返信数: 2
閲覧数: 1633

Re: じゃんけん

ループを使ってあいこだったら最初からやり直すようにする、というのが一つの手でしょう。 #include<stdio.h> #include<stdlib.h> #include<time.h> int main(void) { int hand_com,hand_YOU; srand(time(NULL)); for(;;) { rand(); hand_com = (rand()%(3)); printf("*** じゃんけんします***\nじゃんけんぽん!(1:グー、2:チョキ、3:パー ):"); scanf("%d",&hand_YOU); if(hand_YOU<1 || hand_...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 平均と標準偏差を求める
返信数: 6
閲覧数: 2320

Re: 平均と標準偏差を求める

ヒントの通り、for文の中で入力を読み込みながら和と二乗和を求めるようにするといいでしょう。 #include <stdio.h> int main(void) { int i; double wa = 0, zizyouwa = 0; for (i = 1; i <= 10; i++) { double x; if (scanf("%lf", &x) != 1) { fputs("read error\n", stderr); return 1; } wa += x; zizyouwa += x * x; } /* 平均と標準偏差を求める */ return 0; }
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Atcoder 実行時エラー
返信数: 3
閲覧数: 1750

Re: Atcoder 実行時エラー

minの扱いが不適切です。

例えば

コード:

2 100
2
1
という入力を与えると、 m[j] < m[k] を満たす j, k の組み合わせが存在しないため、
未初期化の自動変数minの値(不定)が計算に使われ、未定義動作になります。
例えば、minの初期値がたまたま0だった場合、
整数のゼロ除算により強制終了(ランタイムエラー)になるかもしれません。

どんな入力が来ても、sum の計算の前に m_i の最小値が min に入るよう、
プログラムを修正するといいと思います。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 平均と標準偏差を求める
返信数: 6
閲覧数: 2320

Re: 平均と標準偏差を求める

配列を使わずに値をバラバラの変数に読み込むのであれば、for文の中身は空でいいでしょう。
for文は無視し、

コード:

s = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10;
のようにすれば和を求めることができます。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 平均と標準偏差を求める
返信数: 6
閲覧数: 2320

Re: 平均と標準偏差を求める

double 型の値を scanf で読み込むには、 %f ではなく %lf を使います。
%f は float 型の値を読み込むための書式です。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ユニバーサル文字名から数値の変換
返信数: 2
閲覧数: 1614

Re: ユニバーサル文字名から数値の変換

UTF-8の形式に基づいて変換をするのがいいでしょう。 UTF-8 - Wikipedia #include <cstdio> #include <string> #include <cstring> long utf8_to_int(const char* data) { if ((data[0] & 0x80) == 0x00) { return data[0]; } else if ((data[0] & 0xe0) == 0xc0) { return ((data[0] & 0x1f) << 6) | (data[1] & 0x3f); } else if ((data[0] & 0x...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 標準偏差がマイナスになってしまいます
返信数: 6
閲覧数: 2150

Re: 標準偏差がマイナスになってしまいます

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 m=sqrt(sigma*sigma); この部分ですが、2乗して平方根をとっても同じ値になりますよね。 (sigmaは負にはならないはずなので) m=sqrt(sigma); とするべきでしょう。 さらに、書式が%20.19fとなっているので、小数点以下が19桁出力されてしまいます。 32.696804のように表示するには、%.6fとするといいでしょう。 他の回答者さんたちへ この質問者さんのコードで...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 評価値,整数値
返信数: 4
閲覧数: 2061

Re: 評価値,整数値

ごめんなさい、間違えました。 5~8の説明においては「C言語で」と書かれているのに対し、1~4の説明では「C言語で」的なことは書かれていません。 また、この質問の他の部分にも「C言語」という条件はありません。 したがって、1~4の説明については、C言語以外も考えるのが自然だと考えられます。 実際、例えばJavaScriptでは、条件式 1 == 2 の評価値は false となり、これは0でも整数でもありません。 よって、 3.正しい。 は、「間違っているか微妙」ではなく、間違いだと確定できます。 実際、このコード console.log(1 == 2); // 1 == 2 の評価値 con...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: switch-case
返信数: 1
閲覧数: 1551

Re: switch-case

C言語においては、 比較演算子 (==、!=、<、<=、>、>=) 、論理AND演算子(&&)、論理OR演算子(||)、論理NOT演算子(!)の評価結果は 真のとき1、偽のとき0となるので、例えば #include <stdio.h> int main(void) { int value = 42; switch (0 <= value && value < 60) { case 1: puts("D"); break; case 0: puts("Dではない"); break; } return 0; } のように書くことで #include <stdio.h> int main(void)...

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