検索結果 6632 件

by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: メニュー画面の実装について
返信数: 7
閲覧数: 5780

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

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

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

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

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

関数

コード:

bool PlayerOptionCollection::update()
内の行

コード:

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

コード:

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

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言語何でも質問掲示板
トピック: キャッチゲーム
返信数: 7
閲覧数: 5381

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 数字を10分割するプログラム
返信数: 2
閲覧数: 4028

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

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

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

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

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

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

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

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault (core dumped)の解決方法
返信数: 4
閲覧数: 6897

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 数字を小さい順に並べるプログラム
返信数: 2
閲覧数: 4224

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

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: includeの利用について
返信数: 4
閲覧数: 5032

Re: includeの利用について

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

コード:

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

コード:

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

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

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

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

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

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

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 敵を倒しきったらEND画面へ・・・
返信数: 12
閲覧数: 7117

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

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

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

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

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

コード:

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします
返信数: 4
閲覧数: 4762

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
返信数: 7
閲覧数: 5983

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

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題です
返信数: 4
閲覧数: 3595

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 敵がうまく表示できません、、、
返信数: 7
閲覧数: 6016

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 敵がうまく表示できません、、、
返信数: 7
閲覧数: 6016

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

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: [sikyuu ]二次元配列でのエラー
返信数: 3
閲覧数: 3882

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 仮引数を受け取らない関数について
返信数: 3
閲覧数: 4494

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

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語初心者です。コードの作り方がわかりません。
返信数: 3
閲覧数: 4444

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

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

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

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

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

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 課題を教えてください
返信数: 4
閲覧数: 5306

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

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

コード:

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: インラインアセンブラ - 引数合っているはず
返信数: 7
閲覧数: 5683

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: Rangeオーバーの原因がわからない
返信数: 3
閲覧数: 4321

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

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

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

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

コード:

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

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

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

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

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

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題2
返信数: 11
閲覧数: 8027

Re: 学校の課題2

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

Re: 学校の課題 文字配列

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題 文字配列
返信数: 9
閲覧数: 6841

Re: 学校の課題 文字配列

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数でいくつかの弾を同時に落としたい
返信数: 4
閲覧数: 4728

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 8043

Re: 学校の課題

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

Re: 学校の課題

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

コード:

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 8043

Re: 学校の課題

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

Re: 学校の課題

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

Re: 平均頂点間距離

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

Re: 配列

コード:

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

Re: 配列

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

コード:

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

Re: 数列

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

コード:

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

Re: じゃんけん

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 平均と標準偏差を求める
返信数: 6
閲覧数: 5490

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: Atcoder 実行時エラー
返信数: 3
閲覧数: 4120

Re: Atcoder 実行時エラー

minの扱いが不適切です。

例えば

コード:

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

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

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

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

コード:

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

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: 標準偏差がマイナスになってしまいます
返信数: 6
閲覧数: 5110

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

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

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
2年前
フォーラム: C言語何でも質問掲示板
トピック: switch-case
返信数: 1
閲覧数: 3329

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)...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 評価値,整数値
返信数: 4
閲覧数: 4923

Re: 評価値,整数値

2.正しい。 確かに、少なくともこれは間違いですね。 ここでの「条件式」の定義は ただし,文中の「条件式」とは,関係演算子(==, >, !=など)や論理演算子(&&, ||, !)を用いた式のこととする. となっており、すなわち「指定の演算子が使われている」というだけですね。 したがって、例えば (1 == 1) + 1.5 も(==演算子が使われているので)「条件式」であり、真とみなせますが、 その評価値は整数ではありません。 3.正しい。 これは間違っているか微妙ですね。 例えば、0.0 (1 == 2) + 0.0 や、(void*)0 1 == 2 ? malloc(1024) :...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: エラーコードの解決方法
返信数: 1
閲覧数: 3368

Re: エラーコードの解決方法

わからないことは、まずググってみるといいと思います。
C28251 - Google 検索

例えばこれとかかな?
warning C28251: 'WinMain' に対する整合性のない注釈: このインスタンスには 注釈なし が含まれます。 - 小さい頃はエラ呼吸
(引数の型の前におまじないを書くといいかも)
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列から数字を抽出する方法
返信数: 2
閲覧数: 3782

Re: 文字列から数字を抽出する方法

1. 作るプログラムの仕様を決める

例えば、
・抽出元の文字列はどこから入力させるか?
・数字はどのくらいの範囲(大きさ)まで対応するか? (例えば4桁?9桁?18桁?もっと?負の数は?)
・認める数字の範囲は? (全角アラビア数字は?漢数字は?ローマ数字は?その他の言語での数字や数を表す言葉は?)
・「大きい順」とは?数値として見た時の大きさ?辞書順?データサイズが大きい順?
・出力はどこに、どのような書式でする?
など。

2. 決めた仕様に基づき、プログラムを作る

3. 作ったプログラムをテスト・デバッグする

というように作ればいいと思います。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: if文を使った組み合わせ(?)の問題です
返信数: 2
閲覧数: 3392

Re: if文を使った組み合わせ(?)の問題です

1. なしの個数だけを考えた時、最大何セット作れるかを考える 2. ももの個数だけを考えた時、最大何セット作れるかを考える 3. 1と2のセット数のうち、少ない方(多くない方)が実際に作れるセット数である 4. 全部の果物の数からセットを作るのに使う果物の数を引くと、余った果物の数が求まる #include <stdio.h> int main(void) { int a,b,c,d; printf("なし> "); scanf("%d", &a); printf("もも> "); scanf("%d", &b); /* なしで何セット作れるかを求める */ c = a / 2; /* ももで...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ハンドルされていない例外というエラー
返信数: 2
閲覧数: 3369

Re: ハンドルされていない例外というエラー

このGameクラスでは、コンストラクタでmodeに1を代入しています。 さらに、Update関数およびRender関数では、それぞれmodeが1の時、 同じUpdate関数やRender関数を呼ぶようになっています。 そのため、Gameクラスのインスタンスを作成し、そのままUpdate関数またはRender関数を呼び出すと、 無限再帰になり、スタックオーバーフローで強制終了する可能性があります。 特に、Render関数ではRender関数の呼び出しの後に処理が続いているため、 末尾再帰最適化ができず、スタックオーバーフローになる可能性が高いと考えられます。 従って、コードを全部消さなくても、こ...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ハンドルされていない例外というエラー
返信数: 2
閲覧数: 3369

Re: ハンドルされていない例外というエラー

コードを全部消しましょう。 コードを全部消して、例えば #include <Windows.h> int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) { return 0; } みたいな状態にすれば、エラーは出なくなると思います。 (これでもエラーが出るなら、おそらく開発環境に問題があるでしょう) コードを消してエラーが出なくなったら、少しずつ消したコードを復活させていきましょう。 ある場所のコードを復活させた時にエラーが出るようになったら、そこに間違いがあるかもしれません。 (ただし、間違いは別の場所かもしれませんし、複数かもしれませ...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: while文
返信数: 1
閲覧数: 2956

Re: while文

課題の丸投げは禁止です。 フォーラムルール を読み、従ってください。 宿題の質問は OK! でも丸投げは NG! 宿題の文章だけ書いて「誰か答え教えて下さい」は× 課題の丸投げ(問題文だけ書く事)は禁止です。 ただし上のように記載してもらえればこれは当てはまりません。 自分でどこまでやったのか、今どこが解らないのかを明確にして下さい。 さっぱり解らず、手も足も出ない時は、その事を明記の上、 勉強方法からアドバイスを受けましょう。 どうしても提出期限の関係で答えが欲しい時はその事をしっかり明記の上、 回答者さん達の理解を求めるようにしましょう。 また、解決した時は、「解決しました」とだけ言って去...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 条件
返信数: 1
閲覧数: 2982

Re: 条件

例えば以下のようにすると条件を満たします。

(1)

コード:

puts(n>0?"pos":n<0?"neg":"zero"));return 0;if(0
(2)

コード:

;
(3)

コード:

0
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 型string をdoubleに変える方法
返信数: 2
閲覧数: 3274

Re: 型string をdoubleに変える方法

これはC#ですか? とりあえず Wandboxにコピペして実行を試み てみました。 結果 prog.cs(10,23): error CS0029: Cannot implicitly convert type `string' to `double' Compilation failed: 1 error(s), 0 warnings わからないことは、ググることでわかることがあります。 今後は、まずはこれを試してみるといいと思います。 C# string double 変換 - Google 検索 例えばこれが見つかりました。 文字列を数値に変換する、数値を文字列に変換する - .NET ...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 条件
返信数: 8
閲覧数: 6704

Re: 条件

確かにこういうのはコンパイラに聞くのが一番ですね。
BqXSrc - Online C Compiler & Debugging Tool - Ideone.com
出力は

コード:

ABCEF
間違いは…例えばscanf()の返り値をチェックしていないこととかでしょうか?
本当は num != 0 じゃなくて num != 1 と書きたかったとか、
num = 0 と書く実験がしたかったなどの可能性もありますし、
何が間違いかはこれだけではわかりませんね。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: do while文について
返信数: 1
閲覧数: 2915

Re: do while文について

scanfに空白文字(改行文字を含む)を無視してもらうため、%cの前に空白を入れるといいでしょう。

コード:

scanf(" %c", &input);
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: std::vector<T> のイテレータを関数の戻り値として使いたい
返信数: 2
閲覧数: 3580

Re: std::vector<T> のイテレータを関数の戻り値として使いたい

よくわかっていないですが、std::vector<T>::iteratorの前にtypenameを加えるといいかもしれません.

typenameなし

typenameあり
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 新・明解 C言語 演習11-3を解けなくて困っています。
返信数: 2
閲覧数: 3489

Re: 新・明解 C言語 演習11-3を解けなくて困っています。

Bullsさんへ ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 警告やノートの方は、 昔のコードに対して、 今の規格だと「何が起こるかわからない」けど、 今、昔の解釈でコンパイルできないと、困りますから、昔風の解釈で通しますが、 将来は保証しませんよ、 ぐらいみみ ? 「ループの中で代入をするというのは不自然だ。本当は比較をしたいんじゃないの?」 という意味ですね。 「いやここは代入で合ってる!」という場合は、 while ((*d++ = *s+...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル操作についてです。
返信数: 2
閲覧数: 3064

Re: ファイル操作についてです。

まず、dirent構造体は使いまわしされることがあるので、 文字列へのポインタをそのまま代入するのではなく、新しい領域を確保して文字列をコピーするべきです。 そして、ファイル名としてfile_nameではなくfile_name[​i]を使用して処理をするべきです。 また、file_name[​i]にはファイル名しか含まれていないので、 ディレクトリ名を追加してあげないと対象のディレクトリではなくカレントディレクトリからファイルを読もうとしてしまいます。 さらに、下のfor文においてfile_name[cnt]は初期化されていないので、アクセスしてはいけません。 最後に、操作を続行する前にope...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 式と演算子の問題です
返信数: 8
閲覧数: 5483

Re: 式と演算子の問題です

「果物の個数の合計は100個未満」という条件があり、果物の個数は負にはならないはずなので、 果物の個数は7ビット(0~127)で表すことができます。 したがって、C言語のint型は少なくとも-32767~32767の整数を格納することができるので、 変数priceの下位1バイト(8ビット)に1個の果物の個数を、 その次の1バイトにもう1個の果物の個数を格納することができます。 3個目の果物の個数は、xに読み込んでそのまま使えばいいでしょう。 #include <stdio.h> int main(void) { int x, price = 0; printf("りんご> "); scanf(...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 式と演算子の問題です
返信数: 8
閲覧数: 5483

Re: 式と演算子の問題です

普通に果物の個数を合計すればいいと思います。 「変数宣言を追加してはならない」という条件があったのですね。考え直します。 #include <stdio.h> int main(void) { int x, number = 0, price = 0; printf("りんご> "); scanf("%d",&x); number=number+x; price=price+x*80; printf("みかん> "); scanf("%d",&x); number=number+x; price=price+x*50; printf("もも> "); scanf("%d",&x); numb...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 1~11を表示する線形リスト
返信数: 5
閲覧数: 3965

Re: 1~11を表示する線形リスト

compound literal を使うといいでしょう。 また、配列の要素は十分な数確保しないといけません。 【C言語】複合リテラル【完全解説、生存期間、注意点、構造体/配列リテラル】 | MaryCore List listdata[11]; for(int i = 0; i < 10; i++) { listdata[i] = (List){&listdata[i + 1], 1 + i}; } listdata[10] = (List){NULL, 11}; また、メンバに対し1個ずつ代入する方法もあります。 List listdata[11]; for(int i = 0; i < 1...
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 1~11を表示する線形リスト
返信数: 5
閲覧数: 3965

Re: 1~11を表示する線形リスト

ループ内で p の値を更新していないですね。

p -> next を、 p = p -> next とするといいでしょう。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 標準入力
返信数: 2
閲覧数: 3213

Re: 標準入力

さらに、scanfをsscanfに、そのsscanf(元scanf)の引数中の.を,に、変えたほうが良さそうですね。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: 標準入力
返信数: 2
閲覧数: 3213

Re: 標準入力

まず、全角スペースが入っているようなので、半角スペースに置き換えます。
次に、PythonではなくC言語のソースコードのようなので、拡張子を.pyから.cに変えます。
by みけCAT
2年前
フォーラム: C言語何でも質問掲示板
トピック: ガウスの消去法を用いたN元一次方程式を解きたい
返信数: 3
閲覧数: 3213

Re: ガウスの消去法を用いたN元一次方程式を解きたい

1. 値を読み込む前に、値を読み込むための領域を確保する 2. 正しい型のポインタをscanfに渡す べきです。 1. は、 printf("N="); scanf("%d",&N); の次に A = malloc(sizeof(*A) * N * N); b = malloc(sizeof(*b) * N); if(A == NULL || b == NULL) return 1; を追加することでできます。 2. は、 scanf("%lf",&ai+j); scanf("%lf",&b+i); をそれぞれ scanf("%lf",ai+j); scanf("%lf",b+i); とするこ...

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