検索結果 6632 件
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: メニュー画面の実装について
- 返信数: 7
- 閲覧数: 6084
Re: メニュー画面の実装について
その戻り値をStopSoundMem(ImageMusic::getIns() -> getMusic) みたいな感じで引数に用いればうまくいくと思ったのですがダメでした。 「みたいな感じ」って具体的にどのような感じなのでしょうか? getMusic関数を呼ばず、関数のポインタをStopSoundMemに渡す感じ、ということですか? 「ダメでした」「うまく機能してくれませんでした」とは、具体的にどううまく行かなかったのですか? (デタラメな値が帰る、帰る値はそれっぽいけど再生の停止ができない、など) また、このgetMusicの実装だと、_images の要素に再生中の音声が無い場合に 未初...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: ジェネリック型を使ったFilter関数の使い方がわかりません
- 返信数: 2
- 閲覧数: 4002
Re: ジェネリック型を使ったFilter関数の使い方がわかりません
ジェネリック型についてはよくわからないですが、とりあえずコンパイルが通るようにしてみました。 ・ std::function を使うため、ヘッダ functional を include する ・HogeTest のコンストラクタ内の文の最後にセミコロンを補う ・HogeTest のコンストラクタとデストラクタをpublicにする ・HogeTest にメンバ hoge が無いため、追加する ・main関数の返り値の型をvoidではなくintにする ・Filter 関数に渡す第一引数をstd::vectorへのポインタではなくstd::vectorにする ・ForEach が定義されていないの...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: メニュー画面の実装について
- 返信数: 7
- 閲覧数: 6084
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾がうまく発射できない
- 返信数: 6
- 閲覧数: 5671
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾がうまく発射できない
- 返信数: 6
- 閲覧数: 5671
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クラス(ソースは省きま...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: キャッチゲーム
- 返信数: 7
- 閲覧数: 5588
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 関数...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語 数字を10分割するプログラム
- 返信数: 2
- 閲覧数: 4203
Re: C言語 数字を10分割するプログラム
まず訂正をします。 100個のデータから生成されるデータは、1001個ではなく991個でした。 (最初のデータはそのまま使い、残り99個のデータ1個につき10個のデータが生成されると考えられるので) すると、1000個のデータを得るには残りの9個をどうやって生成するのかを考える必要があります。 そして、991個のデータを生成する部分を一般化してみました。 後は、1000個ではなく991個でよいのであれば、 入出力と間の値を計算する部分の仕様を決め、実装すれば、プログラムができるでしょう。 #include <stdio.h> #include <stdlib.h> #include <stri...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語 数字を10分割するプログラム
- 返信数: 2
- 閲覧数: 4203
Re: C言語 数字を10分割するプログラム
つまり,100個のデータだとしたら,それぞれの間で等分割して1000個のデータに変換したいです. これは無理そうですね。 それぞれの区間を10分割すると、100個のデータからは1001個のデータが生成されます。 したがって、「等分割」「100個のデータを1000個のデータに変換」という条件を同時に満たすのは無理と考えられます。 ただし、データの最後が例示されていないため、最後のデータを省くことで1000個にする、という選択肢はあります。 1001個でよければ、データの分割は以下のようにできます。 #include <stdio.h> int main(void) { double dataA...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: C 言語 番号振りなおしにつおて
- 返信数: 1
- 閲覧数: 3683
Re: C 言語 番号振りなおしにつおて
c言語で構造体に1から順にナンバーをつけて、それをソートしてからまた、1からつけなおすにはどうすれば良いんでしょうか? 希望の処理を行うコードを書き、実行すればいいです。 初期化のための関数を作り、代入してからfor構文を使う感じでしょうか? 自分の書きやすい形、そしてできれば後日の修正や改良がしやすい(保守性が高い)形で書けばいいでしょう。 自分がしたいのは例えば下のような用意してある構造体をあいうえお順に並び替えて②①③にしてから、それを新しく上から①②③に書き換える関数を作りたいのですがどうすればいいのでしょうか? 1. あいうえお順に並び替える 2. 番号を書き換える という処理を行...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列比較のアルゴリズムについて
- 返信数: 4
- 閲覧数: 6274
Re: 文字列比較のアルゴリズムについて
とりあえずすぐにわかるのは
・i=0 で範囲外の s1[i-1] や、j=0で範囲外の s2[j-1] にアクセスしている
・strcmp で比較するデータに終端のナル文字を入れていない
・変数 i を用いたループの内側にまた同じ変数 i を用いたループがあるので、
内側のループによって変数 i の値が破壊されて外側のループがうまく回らない
あたりですね。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列比較のアルゴリズムについて
- 返信数: 4
- 閲覧数: 6274
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: Segmentation fault (core dumped)の解決方法
- 返信数: 4
- 閲覧数: 7118
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 で文字列を読み込む時は読み込む最大の長さを指定するべきです。 この最大の長さは、最後にナ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字を小さい順に並べるプログラム
- 返信数: 2
- 閲覧数: 4403
Re: 数字を小さい順に並べるプログラム
ごめんなさい、リンク先間違いです。
(編集の制限時間ギリギリでリンクが抜けていることに気がついたのででよく確認せずにリンクを貼り、
そのまま時間切れになってしまいました)
正しくは https://wandbox.org/permlink/rcRUewltC5f1jSwk
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字を小さい順に並べるプログラム
- 返信数: 2
- 閲覧数: 4403
Re: 数字を小さい順に並べるプログラム
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 他の回答者さんへ: 掲示板の配慮を欠いた設計により、[i]が終了タグが無いにも関わらず斜体のタグと解釈され、 隠されているようです。 コードは引用画面から読むのが良いです。 どこが間違っているのか教えて欲しいです。 まずは コンパイラ様に教えてもらいましょう 。 prog.c: In function 'main': prog.c:39:5: error: array size missing in ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 課題について
- 返信数: 3
- 閲覧数: 5091
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: includeの利用について
- 返信数: 4
- 閲覧数: 5248
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 球と円柱の当たり判定
- 返信数: 10
- 閲覧数: 7858
Re: 球と円柱の当たり判定
どう実装するかを考えて実装すればいいと思います。
・円柱は何個あるのか?
・円柱は動くのか?
・「戦う」とは具体的にどのような動作か?
・キャラクターの可能な動きは? (たとえばジャンプはできる?)
などによって、具体的な適切な実装は違ってきそうだと思います。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 球と円柱の当たり判定
- 返信数: 10
- 閲覧数: 7858
Re: 球と円柱の当たり判定
usaoさんの言うように、円と長方形の当たり判定に帰着させる方法が良さそうですね。 まず、 点と直線と平面と交点と距離 に載っている方法で、球の中心点から円柱の中心軸に垂線を下ろした時の交点を求めます。 すると、この交点を原点、円柱の中心軸をx軸、交点と球の中心点を通る直線をy軸 (軸の向きは適当に) とした平面を考えることができ、 その平面における球の中心点、および円柱の2個の底面と中心軸の交点の座標 (≒距離) がわかるはずです。 あとは、これらの座標と、球や円柱の半径を用いて、当たり判定をする円と長方形の座標が求まります。 mixcpp-20210809.png 円と長方形の当たり判定は...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: int型からchar*にする方法を教えて下さい、、、
- 返信数: 6
- 閲覧数: 6052
Re: int型からchar*にする方法を教えて下さい、、、
変換せずにDrawFormatString関数で直接描画するのではダメですか?
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 敵を倒しきったらEND画面へ・・・
- 返信数: 12
- 閲覧数: 7347
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 敵を倒しきったらEND画面へ・・・
- 返信数: 12
- 閲覧数: 7347
Re: 敵を倒しきったらEND画面へ・・・
どうして敵を描画するごとにTekikazuを1プラスするのか、説明できますか?
敵を倒しきったかの判定なら、敵を倒した、
すなわち弾と敵が接触して敵が消えた時にプラスした方がいいような気がします。
敵を倒しきったかの判定なら、敵を倒した、
すなわち弾と敵が接触して敵が消えた時にプラスした方がいいような気がします。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: (再投稿)この時のmanage get,manage open, manage close に入る引数がわかりません。どなたか教えてくださいませんか
- 返信数: 3
- 閲覧数: 4397
Re: (再投稿)この時のmanage get,manage open, manage close に入る引数がわかりません。どなたか教えてくださいませんか
この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします - プログラマ専用SNS ミクプラ の続きですね。 規約には明示されていないことですが、同じ内容のトピックを複数立てるのは、 情報の分散に繋がるので個人的にはよくないと思います。 また、このトピックで指摘させていただいた、 「manage get,manage open, manage close」の仕様や目的についても書かれていないようですね。 2枚目の512,513,514の宣言は気にしないでください。 どうしてですか? 回答に繋がる重要ポイントかもし...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 爆発アニメーションに関して、、、
- 返信数: 4
- 閲覧数: 4690
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします
- 返信数: 4
- 閲覧数: 4943
Re: この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 余計な空白が入った [ code ] や [ /code ] は、BBCodeのcodeタグではありません。 この時のmanage get , open, close に入る引数がわかりません。どなたか教えてくださいませんか。よろしくお願いします これらの関数の仕様も目的もわからないので断定はできませんが、 p_open → 適当なFILE*型変数へのポインタ p_close → p_openにポインタ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
- 返信数: 7
- 閲覧数: 6212
Re: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
・pの値を0で固定しており、最初の要素以外の弾についての判定をしていない ・敵と弾の両方が「存在する」とき判定をするべきなのに、「存在しない」とき判定をするようになっている ・敵と弾の存在(しない)判定の通過後、接触していないと判定した時、不適切にbreak;で判定処理を打ち切っている ・敵と弾の存在(しない)判定の通過後、接触していると判定したとき、iの値を不適切に設定している ↓直したコード for (i = 0; i < Tama; i++) { // 自機の弾iの移動ルーチン( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う ) if (JikiTamaFlag[i] ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
- 返信数: 7
- 閲覧数: 6212
Re: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
前言われた配列を走査する、というのがまだ理解できていなくて…どういう意味なのでしょうか 配列の要素を前から1個ずつ処理していく、という意味です。 配列 走査 - Google 検索 みけCATさんに言われたとおりに「配列を走破し・・・」ていうのを前と同じやり方でやってみたのですが ループ後に条件を満たす要素が見つかったかをチェックし、 見つかっていたらそこに対して処理を行う、という処理が無いため、同じやり方ではないですね。 弾を撃つとフリーズしてしまいます for (i = 0; i < Tama; i++) のループの内側で、変数 i の値を不適切に書き換えているため、 特殊な場合以外は無...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 公式のDXライブラリを見ながら当たり判定を実装しようとしているのですが。。。。。。
- 返信数: 7
- 閲覧数: 6212
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] = ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 学校の課題です
- 返信数: 4
- 閲覧数: 3854
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 敵がうまく表示できません、、、
- 返信数: 7
- 閲覧数: 6247
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 ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 敵がうまく表示できません、、、
- 返信数: 7
- 閲覧数: 6247
Re: 敵がうまく表示できません、、、
ptn という変数をもって0~640のどこかにランダムで敵が落ちてくるようにしたいです。 ptnをどう絡めるかがよくわかりませんが、敵を出す時に位置を乱数で決めるといいと思います。 一瞬だけ右上に敵が現れ、すぐに消えてしまいます。 敵を出した時にしか敵を描画していないからですね。 if (Teki1Y >= WORLD_HEIGHT && Teki1Y <= -64) この条件式は常に偽であり、不自然です。 && ではなく || の方がいいのではないでしょうか? int Teki1X[TAMA_MAX], Teki1Y[TAMA_MAX], ... 敵関連の変数が配列になっていないです。 「...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: スペースを離すと弾が消えるのと、なぜかタイトル画面が表示されなくなりました。
- 返信数: 2
- 閲覧数: 4196
Re: スペースを離すと弾が消えるのと、なぜかタイトル画面が表示されなくなりました。
まず、前まで表示されていたタイトルが、弾を発射するようになってから表示されなくなりました。(Zを押すとスタートという設定で、真っ暗な画面でもZを押すとゲーム画面にはなります。) ScreenFlip(); を、 status == GAME の時にのみ実行するようにしているからですね。 もう一つは、スペースを押したときに弾を連射できるようになったのですが、スペースを離すと弾が消え、もう一度押すと先ほどの弾が先ほどの位置に居て、スペースを押していると弾が動きます。 「自機の弾iの移動ルーチン」を、 CheckHitKey(KEY_INPUT_SPACE) == 1 の時にのみ実行するようにして...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: グラフの隣接リストを表示させたい(深さ優先探索)(幅優先探索)
- 返信数: 2
- 閲覧数: 4169
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 =...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: [sikyuu ]二次元配列でのエラー
- 返信数: 3
- 閲覧数: 4022
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 仮引数を受け取らない関数について
- 返信数: 3
- 閲覧数: 4683
Re: 仮引数を受け取らない関数について
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 ([]で囲まれていない code や /code はcodeタグではありません) input()で使ったnumをgoukei()でも使うためにはどうすればいいでしょうか 「仮引数を受け取らない」という条件なので、グローバル変数を使うしかなさそうですね。 #include <stdio.h> /* グローバル変数 input関数やgoukei関数ではローカルでnumが宣言されていないため、これが参照される...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾の発射がどうもうまくいきません、、、
- 返信数: 8
- 閲覧数: 6786
Re: 弾の発射がどうもうまくいきません、、、
スペースを長押しすると弾を保持?みたいな状態で、放すと飛びます、その弾が飛んでいるときにもう一度スペースを押すと弾が消えてしまい、もう一度振り出し(つまり一発しか打てないということ)になってしまいます。 書いた通りに修正して実行してみましたが、再現せず、 予想通りスペースキーを押しっぱなしにすることで弾が連射され、 弾を20個出したところで配列に空き要素が無くなり、弾が止まりました。 (弾が画面外に抜けると、空き要素が再び生まれ、弾が再び発射されました) screenshot.png スペース長押・好きな時に弾を連射したいのですがどうしたらいいでしょうか、、、 なぜ思った通りの動作にならない...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾の発射がどうもうまくいきません、、、
- 返信数: 8
- 閲覧数: 6786
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語初心者です。コードの作り方がわかりません。
- 返信数: 3
- 閲覧数: 4635
Re: C言語初心者です。コードの作り方がわかりません。
適解かどうかは一旦置いといて、まずは動くことを目指して実装してみるといいと思います。
また、このreadline関数は最初のコードに合わないようですね。
最初のコードではreadline関数に引数を3個渡していますが、#3のreadline関数の引数は2個しかありません。
また、第1引数の値を使うのであれば、未初期化の自動変数の値(不定) newsid を渡すのはまずいでしょう。
また、このreadline関数は最初のコードに合わないようですね。
最初のコードではreadline関数に引数を3個渡していますが、#3のreadline関数の引数は2個しかありません。
また、第1引数の値を使うのであれば、未初期化の自動変数の値(不定) newsid を渡すのはまずいでしょう。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語初心者です。コードの作り方がわかりません。
- 返信数: 3
- 閲覧数: 4635
Re: C言語初心者です。コードの作り方がわかりません。
エラーメッセージの通り、readline 関数と response 関数が宣言も定義もされていないため、エラーになっています。
使用する場所の前で宣言または定義をし、どこか(別の翻訳単位でも可)で定義をしないといけません。
(readline 関数については以下の有名なライブラリ関数もありますが、引数が違うので関係無さそうです)
readline(3) manページ
readline(3): line from user with editing - Linux man page
使用する場所の前で宣言または定義をし、どこか(別の翻訳単位でも可)で定義をしないといけません。
(readline 関数については以下の有名なライブラリ関数もありますが、引数が違うので関係無さそうです)
readline(3) manページ
readline(3): line from user with editing - Linux man page
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾の発射がどうもうまくいきません、、、
- 返信数: 8
- 閲覧数: 6786
Re: 弾の発射がどうもうまくいきません、、、
また、ここを修正した場合、スペースキーを押している間毎フレーム弾が出てしまいますね。
前のフレームにおけるスペースキーの状態を保持し、前のフレームでは押されていなかった場合のみ弾を出す、
のような処理を入れると動作が改善するかもしれません。
もちろん、毎フレーム弾を出したいのであればこのままでもいいかもしれません。
前のフレームにおけるスペースキーの状態を保持し、前のフレームでは押されていなかった場合のみ弾を出す、
のような処理を入れると動作が改善するかもしれません。
もちろん、毎フレーム弾を出したいのであればこのままでもいいかもしれません。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾の発射がどうもうまくいきません、、、
- 返信数: 8
- 閲覧数: 6786
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] = ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 課題を教えてください
- 返信数: 4
- 閲覧数: 5578
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾を連射するサンプルプログラムを教えてください
- 返信数: 2
- 閲覧数: 4070
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 課題を教えてください
- 返信数: 4
- 閲覧数: 5578
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: インラインアセンブラ - 引数合っているはず
- 返信数: 7
- 閲覧数: 5912
Re: インラインアセンブラ - 引数合っているはず
文字列やローカル変数のアドレス(64ビット)の下位16ビットだけをdxレジスタに入れて何をしたいのかよくわかりませんが、
とりあえず int 0x2 というのは不自然に思えます。
0から作るOS開発 割り込みその1 割り込みとIDTとGDT
によると、x86の割り込みベクタの2番はNMIとなっています。
NMIは致命的なハードウェアエラーを表すのに使われるため、「落ちた」と判定されるかもしれません。
他の場所と同様に int 0x21 としたかったのではないでしょうか?
とりあえず int 0x2 というのは不自然に思えます。
0から作るOS開発 割り込みその1 割り込みとIDTとGDT
によると、x86の割り込みベクタの2番はNMIとなっています。
NMIは致命的なハードウェアエラーを表すのに使われるため、「落ちた」と判定されるかもしれません。
他の場所と同様に int 0x21 としたかったのではないでしょうか?
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: Rangeオーバーの原因がわからない
- 返信数: 3
- 閲覧数: 4519
Re: Rangeオーバーの原因がわからない
いいえ。
i<=0 を加えてしまうと、i = 0 の時しか判定しなくなってしまいます。 (iは0からカウントアップするので)
また、既に i < al.Count という条件があるので、 i<=board.GetLength(0) を加えても意味がないでしょう。
アクセスする場所が範囲外でないという条件にしたいので、
i + 4 < al.Count や m + 4 < al.Count が使えそうと思われます。
i<=0 を加えてしまうと、i = 0 の時しか判定しなくなってしまいます。 (iは0からカウントアップするので)
また、既に i < al.Count という条件があるので、 i<=board.GetLength(0) を加えても意味がないでしょう。
アクセスする場所が範囲外でないという条件にしたいので、
i + 4 < al.Count や m + 4 < al.Count が使えそうと思われます。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: Rangeオーバーの原因がわからない
- 返信数: 3
- 閲覧数: 4519
Re: Rangeオーバーの原因がわからない
al.Count は rowMax や colMax と同じ8になるはずですが、
例えば i = 7 の時に board[i + 1, m] にアクセスしたり、
m = 7 の時に board[i, m + 1] などにアクセスしてしまうと、範囲外になります。
アクセスする場所に合わせた変数の範囲チェックを追加するべきです。
例えば i = 7 の時に board[i + 1, m] にアクセスしたり、
m = 7 の時に board[i, m + 1] などにアクセスしてしまうと、範囲外になります。
アクセスする場所に合わせた変数の範囲チェックを追加するべきです。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列から文字を探すプログラム
- 返信数: 3
- 閲覧数: 4740
Re: 文字列から文字を探すプログラム
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
これは未定義動作になります。
%c は char 型の変数へのポインタを要求するので、変数 c の型は char にするべきです。
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
これは未定義動作になります。
%c は char 型の変数へのポインタを要求するので、変数 c の型は char にするべきです。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: ChangeWindowMode(FALSE); の後に画像表示できない
- 返信数: 2
- 閲覧数: 3663
Re: ChangeWindowMode(FALSE); の後に画像表示できない
ChangeWindowMode関数はロードした全てのグラフィックハンドルを削除するので、
呼び出した後画像を読み込み直す必要があります。
呼び出した後画像を読み込み直す必要があります。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++の宿題が分からないです。(時間差についての問題)
- 返信数: 3
- 閲覧数: 4332
Re: C++の宿題が分からないです。(時間差についての問題)
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
まずは何らかの方法で「指定の時刻」を指定しないといけないですね。
「指定の時刻」を指定したら、現在時刻と「指定の時刻」それぞれを一旦「基準の時刻から何分」で表して引き算し、
それをまた「〇日と〇時間と〇分」に変換する、という方法があります。
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
まずは何らかの方法で「指定の時刻」を指定しないといけないですね。
「指定の時刻」を指定したら、現在時刻と「指定の時刻」それぞれを一旦「基準の時刻から何分」で表して引き算し、
それをまた「〇日と〇時間と〇分」に変換する、という方法があります。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++の宿題が分からないです。(時間差についての問題)
- 返信数: 3
- 閲覧数: 4332
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 難しいです。助けてください
- 返信数: 2
- 閲覧数: 3870
Re: 難しいです。助けてください
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 例えば、average関数で ・変数sumを定義する ・day[0]を二重に足さないようにする ・配列ではなく要素数をループの条件に使う ・計算結果を返す とし、main関数ではif文の中でもaverage関数を呼ぶようにすると、とりあえず動作は改善するでしょう。 #include<stdio.h> #define NUMBER 7 int day[NUMBER]; int average(void);...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 学校の課題2
- 返信数: 11
- 閲覧数: 8464
Re: 学校の課題2
%c 指定子は、1文字(もしくは文字数を指定した場合、指定された数の文字)を読み込むためのものです。 文字列を読み込むには、%s 指定子を使うといいでしょう。 また、 fscanf_関数 で文字(%c)や文字列(%s)を読み込む際は、読み込み先の後にunsigned型で読み込み先のバッファサイズを指定しないといけません。 バッファオーバーフローを防ぐため、%s 指定子を使う際は読み込む最大バイト数を指定するべきです。 最大バイト数は、終端のナル文字の分を除くためバッファサイズ-1までにするべきです。 さらに、式中の配列は(sizeof演算子や単項&演算子に渡す場合などの例外を除いて)先頭要素へ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 学校の課題 文字配列
- 返信数: 9
- 閲覧数: 7245
Re: 学校の課題 文字配列
配列の要素数だけでなく、jのループの上限も増やす必要があります。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 学校の課題2
- 返信数: 11
- 閲覧数: 8464
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 学校の課題 文字配列
- 返信数: 9
- 閲覧数: 7245
Re: 学校の課題 文字配列
使っている文字コードは何ですか?
UTF-8の場合、カタカナは1文字を3バイトで表す(厳密には例外があるかも?)ので、
9要素しか無い配列を使うとNUL文字が入る場所がありません。
NUL文字があったときにのみ result = 1; を実行するようになっているので、
この場合9要素しか見ないのであればresultは1にはなりません。
また、inputが9要素しか無く、scanfで読み込む最大のバイト数
(NUL文字を入れるため、最大でバッファサイズより1少ない数に設定するべき)が設定されていないため、
バッファオーバーフローを起こしてまわりのデータを破壊する危険があります。
UTF-8の場合、カタカナは1文字を3バイトで表す(厳密には例外があるかも?)ので、
9要素しか無い配列を使うとNUL文字が入る場所がありません。
NUL文字があったときにのみ result = 1; を実行するようになっているので、
この場合9要素しか見ないのであればresultは1にはなりません。
また、inputが9要素しか無く、scanfで読み込む最大のバイト数
(NUL文字を入れるため、最大でバッファサイズより1少ない数に設定するべき)が設定されていないため、
バッファオーバーフローを起こしてまわりのデータを破壊する危険があります。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: c#
- 返信数: 1
- 閲覧数: 1846
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章 データ漏えい対策:親切すぎるエラーメッセージの回避
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 乱数でいくつかの弾を同時に落としたい
- 返信数: 4
- 閲覧数: 4918
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 学校の課題
- 返信数: 14
- 閲覧数: 8619
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: プロットした円の消去
- 返信数: 1
- 閲覧数: 3455
Re: プロットした円の消去
Circle(x,y,5,6)の前に system("cls")を書きいれたのですが、 'system’ undefindというエラーが出ました。 関数なのに定義が必要なのですか? それとも別の方法をとるべきですか? 使う関数は定義が必要ですね。 定義が無いとその関数を呼んだときに何をすればいいのかわからなくなってしまいます。 「なのに」というのは意味がよくわかりません。 system関数の定義は標準ライブラリにあるはずなので、自分で定義する必要はありません。 今回は宣言が無いのが問題ですね。 system関数 の宣言はstdlib.hに含まれるので、コード先頭に #include <std...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 水平投射されるボールのアニメーション
- 返信数: 3
- 閲覧数: 4019
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文の...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 学校の課題
- 返信数: 14
- 閲覧数: 8619
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 学校の課題
- 返信数: 14
- 閲覧数: 8619
Re: 学校の課題
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 全角の[]を使った[code]や[/code]は、BBCodeのcodeタグではありません。 また、大変残念ながら、この掲示板は[i]を対策なしで書くと、 終了タグが無くても斜体タグとして解釈されてしまう不親切設計となっています。 codeタグの外で書く場合は、できればU+200Bを入れたり、[ i ] のように空白を入れるなどの対策をお願いします。 エラーについては、確かに a = lmsq(x, ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 平均頂点間距離
- 返信数: 1
- 閲覧数: 3813
Re: 平均頂点間距離
・double length[N][N];//頂点間距離 において、未初期化のNの値が使われているため、未定義動作になります。 この行は fscanf(fp, "%d %d", &N, &M); /* ファイルからN, Mを読み込む*/ の次に移動するべきです。 ・fflush(stdin); は未定義動作になります。この後標準入力は使っていないようなので、削除するべきです。 ・fopenの返り値がNULLかどうかをチェックしていないため、ファイルオープンに失敗すると危険です。 fopenの直後にチェックを追加し、NULLだったら処理を終了するようにするといいでしょう。 ・/* 隣接行列の...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列
- 返信数: 1
- 閲覧数: 1943
Re: 配列
範囲外にアクセスすることになり動作は保証されませんが、
コードゴルフ的(指定の環境で条件を満たせばOK)には で指定の出力が得られることがありそうですね。
https://wandbox.org/permlink/CDXodniFgukkejcv
コードゴルフ的(指定の環境で条件を満たせばOK)には で指定の出力が得られることがありそうですね。
https://wandbox.org/permlink/CDXodniFgukkejcv
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数列
- 返信数: 4
- 閲覧数: 5450
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: じゃんけん
- 返信数: 2
- 閲覧数: 3946
Re: じゃんけん
このコードは じゃんけん - プログラマ専用SNS ミクプラ で提示したものと大部分が同じですね。 hand_com の計算のバグが修正してあるのは素晴らしいです。 ただ、お礼を言うのが先ではないでしょうか? フォーラムルール より引用 禁止行為について 以下の行為を禁止行為として定めます。 (中略) "C言語何でも質問掲示板"でのみ適用される事項 (中略) 質問後、お礼を言わずにトピックを閉じる、または去る行為 義務行為 "C言語何でも質問掲示板"でのみ適用される事項 トピックを立て、解決した場合は「解決しました」とだけ書かず、どうやって解決したか他の人に分かるように書いて からトピックを...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: じゃんけん
- 返信数: 2
- 閲覧数: 3969
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_...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 平均と標準偏差を求める
- 返信数: 6
- 閲覧数: 5834
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; }
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: Atcoder 実行時エラー
- 返信数: 3
- 閲覧数: 4302
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 平均と標準偏差を求める
- 返信数: 6
- 閲覧数: 5834
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 平均と標準偏差を求める
- 返信数: 6
- 閲覧数: 5834
Re: 平均と標準偏差を求める
double 型の値を scanf で読み込むには、 %f ではなく %lf を使います。
%f は float 型の値を読み込むための書式です。
%f は float 型の値を読み込むための書式です。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: ユニバーサル文字名から数値の変換
- 返信数: 2
- 閲覧数: 3634
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...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 標準偏差がマイナスになってしまいます
- 返信数: 6
- 閲覧数: 5407
Re: 標準偏差がマイナスになってしまいます
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 m=sqrt(sigma*sigma); この部分ですが、2乗して平方根をとっても同じ値になりますよね。 (sigmaは負にはならないはずなので) m=sqrt(sigma); とするべきでしょう。 さらに、書式が%20.19fとなっているので、小数点以下が19桁出力されてしまいます。 32.696804のように表示するには、%.6fとするといいでしょう。 他の回答者さんたちへ この質問者さんのコードで...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 評価値,整数値
- 返信数: 4
- 閲覧数: 5210
Re: 評価値,整数値
ごめんなさい、間違えました。 5~8の説明においては「C言語で」と書かれているのに対し、1~4の説明では「C言語で」的なことは書かれていません。 また、この質問の他の部分にも「C言語」という条件はありません。 したがって、1~4の説明については、C言語以外も考えるのが自然だと考えられます。 実際、例えばJavaScriptでは、条件式 1 == 2 の評価値は false となり、これは0でも整数でもありません。 よって、 3.正しい。 は、「間違っているか微妙」ではなく、間違いだと確定できます。 実際、このコード console.log(1 == 2); // 1 == 2 の評価値 con...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: switch-case
- 返信数: 1
- 閲覧数: 3474
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)...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 評価値,整数値
- 返信数: 4
- 閲覧数: 5210
Re: 評価値,整数値
2.正しい。 確かに、少なくともこれは間違いですね。 ここでの「条件式」の定義は ただし,文中の「条件式」とは,関係演算子(==, >, !=など)や論理演算子(&&, ||, !)を用いた式のこととする. となっており、すなわち「指定の演算子が使われている」というだけですね。 したがって、例えば (1 == 1) + 1.5 も(==演算子が使われているので)「条件式」であり、真とみなせますが、 その評価値は整数ではありません。 3.正しい。 これは間違っているか微妙ですね。 例えば、0.0 (1 == 2) + 0.0 や、(void*)0 1 == 2 ? malloc(1024) :...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: エラーコードの解決方法
- 返信数: 1
- 閲覧数: 3487
Re: エラーコードの解決方法
わからないことは、まずググってみるといいと思います。
C28251 - Google 検索
例えばこれとかかな?
warning C28251: 'WinMain' に対する整合性のない注釈: このインスタンスには 注釈なし が含まれます。 - 小さい頃はエラ呼吸
(引数の型の前におまじないを書くといいかも)
C28251 - Google 検索
例えばこれとかかな?
warning C28251: 'WinMain' に対する整合性のない注釈: このインスタンスには 注釈なし が含まれます。 - 小さい頃はエラ呼吸
(引数の型の前におまじないを書くといいかも)
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列から数字を抽出する方法
- 返信数: 2
- 閲覧数: 3911
Re: 文字列から数字を抽出する方法
1. 作るプログラムの仕様を決める
例えば、
・抽出元の文字列はどこから入力させるか?
・数字はどのくらいの範囲(大きさ)まで対応するか? (例えば4桁?9桁?18桁?もっと?負の数は?)
・認める数字の範囲は? (全角アラビア数字は?漢数字は?ローマ数字は?その他の言語での数字や数を表す言葉は?)
・「大きい順」とは?数値として見た時の大きさ?辞書順?データサイズが大きい順?
・出力はどこに、どのような書式でする?
など。
2. 決めた仕様に基づき、プログラムを作る
3. 作ったプログラムをテスト・デバッグする
というように作ればいいと思います。
例えば、
・抽出元の文字列はどこから入力させるか?
・数字はどのくらいの範囲(大きさ)まで対応するか? (例えば4桁?9桁?18桁?もっと?負の数は?)
・認める数字の範囲は? (全角アラビア数字は?漢数字は?ローマ数字は?その他の言語での数字や数を表す言葉は?)
・「大きい順」とは?数値として見た時の大きさ?辞書順?データサイズが大きい順?
・出力はどこに、どのような書式でする?
など。
2. 決めた仕様に基づき、プログラムを作る
3. 作ったプログラムをテスト・デバッグする
というように作ればいいと思います。
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: if文を使った組み合わせ(?)の問題です
- 返信数: 2
- 閲覧数: 3512
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; /* ももで...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: ハンドルされていない例外というエラー
- 返信数: 2
- 閲覧数: 3497
Re: ハンドルされていない例外というエラー
このGameクラスでは、コンストラクタでmodeに1を代入しています。 さらに、Update関数およびRender関数では、それぞれmodeが1の時、 同じUpdate関数やRender関数を呼ぶようになっています。 そのため、Gameクラスのインスタンスを作成し、そのままUpdate関数またはRender関数を呼び出すと、 無限再帰になり、スタックオーバーフローで強制終了する可能性があります。 特に、Render関数ではRender関数の呼び出しの後に処理が続いているため、 末尾再帰最適化ができず、スタックオーバーフローになる可能性が高いと考えられます。 従って、コードを全部消さなくても、こ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: ハンドルされていない例外というエラー
- 返信数: 2
- 閲覧数: 3497
Re: ハンドルされていない例外というエラー
コードを全部消しましょう。 コードを全部消して、例えば #include <Windows.h> int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) { return 0; } みたいな状態にすれば、エラーは出なくなると思います。 (これでもエラーが出るなら、おそらく開発環境に問題があるでしょう) コードを消してエラーが出なくなったら、少しずつ消したコードを復活させていきましょう。 ある場所のコードを復活させた時にエラーが出るようになったら、そこに間違いがあるかもしれません。 (ただし、間違いは別の場所かもしれませんし、複数かもしれませ...
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: while文
- 返信数: 1
- 閲覧数: 3067
Re: while文
課題の丸投げは禁止です。 フォーラムルール を読み、従ってください。 宿題の質問は OK! でも丸投げは NG! 宿題の文章だけ書いて「誰か答え教えて下さい」は× 課題の丸投げ(問題文だけ書く事)は禁止です。 ただし上のように記載してもらえればこれは当てはまりません。 自分でどこまでやったのか、今どこが解らないのかを明確にして下さい。 さっぱり解らず、手も足も出ない時は、その事を明記の上、 勉強方法からアドバイスを受けましょう。 どうしても提出期限の関係で答えが欲しい時はその事をしっかり明記の上、 回答者さん達の理解を求めるようにしましょう。 また、解決した時は、「解決しました」とだけ言って去...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 条件
- 返信数: 1
- 閲覧数: 3092
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 型string をdoubleに変える方法
- 返信数: 2
- 閲覧数: 3377
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 ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 条件
- 返信数: 8
- 閲覧数: 7077
Re: 条件
確かにこういうのはコンパイラに聞くのが一番ですね。
BqXSrc - Online C Compiler & Debugging Tool - Ideone.com
出力は 間違いは…例えばscanf()の返り値をチェックしていないこととかでしょうか?
本当は num != 0 じゃなくて num != 1 と書きたかったとか、
num = 0 と書く実験がしたかったなどの可能性もありますし、
何が間違いかはこれだけではわかりませんね。
BqXSrc - Online C Compiler & Debugging Tool - Ideone.com
出力は 間違いは…例えばscanf()の返り値をチェックしていないこととかでしょうか?
本当は num != 0 じゃなくて num != 1 と書きたかったとか、
num = 0 と書く実験がしたかったなどの可能性もありますし、
何が間違いかはこれだけではわかりませんね。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: do while文について
- 返信数: 1
- 閲覧数: 2998
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: std::vector<T> のイテレータを関数の戻り値として使いたい
- 返信数: 2
- 閲覧数: 3711
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 新・明解 C言語 演習11-3を解けなくて困っています。
- 返信数: 2
- 閲覧数: 3602
Re: 新・明解 C言語 演習11-3を解けなくて困っています。
Bullsさんへ ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 警告やノートの方は、 昔のコードに対して、 今の規格だと「何が起こるかわからない」けど、 今、昔の解釈でコンパイルできないと、困りますから、昔風の解釈で通しますが、 将来は保証しませんよ、 ぐらいみみ ? 「ループの中で代入をするというのは不自然だ。本当は比較をしたいんじゃないの?」 という意味ですね。 「いやここは代入で合ってる!」という場合は、 while ((*d++ = *s+...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ファイル操作についてです。
- 返信数: 2
- 閲覧数: 3161
Re: ファイル操作についてです。
まず、dirent構造体は使いまわしされることがあるので、 文字列へのポインタをそのまま代入するのではなく、新しい領域を確保して文字列をコピーするべきです。 そして、ファイル名としてfile_nameではなくfile_name[i]を使用して処理をするべきです。 また、file_name[i]にはファイル名しか含まれていないので、 ディレクトリ名を追加してあげないと対象のディレクトリではなくカレントディレクトリからファイルを読もうとしてしまいます。 さらに、下のfor文においてfile_name[cnt]は初期化されていないので、アクセスしてはいけません。 最後に、操作を続行する前にope...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 式と演算子の問題です
- 返信数: 8
- 閲覧数: 5761
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(...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 式と演算子の問題です
- 返信数: 8
- 閲覧数: 5761
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...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 1~11を表示する線形リスト
- 返信数: 5
- 閲覧数: 4125
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...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 1~11を表示する線形リスト
- 返信数: 5
- 閲覧数: 4125
Re: 1~11を表示する線形リスト
ループ内で p の値を更新していないですね。
p -> next を、 p = p -> next とするといいでしょう。
p -> next を、 p = p -> next とするといいでしょう。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 標準入力
- 返信数: 2
- 閲覧数: 3364
Re: 標準入力
さらに、scanfをsscanfに、そのsscanf(元scanf)の引数中の.を,に、変えたほうが良さそうですね。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 標準入力
- 返信数: 2
- 閲覧数: 3364
Re: 標準入力
まず、全角スペースが入っているようなので、半角スペースに置き換えます。
次に、PythonではなくC言語のソースコードのようなので、拡張子を.pyから.cに変えます。
次に、PythonではなくC言語のソースコードのようなので、拡張子を.pyから.cに変えます。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ガウスの消去法を用いたN元一次方程式を解きたい
- 返信数: 3
- 閲覧数: 3327
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); とするこ...