検索結果 6632 件
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: DXライブラリを使わずにタイトル画面とゲーム画面を作りたい
- 返信数: 4
- 閲覧数: 4059
Re: DXライブラリを使わずにタイトル画面とゲーム画面を作りたい
まずはあなたのプログラムを動かすターゲット、およびどうやって画面を出すかを決めましょう。 例えば ・パソコン (クライアント端末) の機械語で動かす ・一般的に使われるOSの上で動かす ・Windows API ・OpenCV ・SDL ・Qt ・一般的なOSは使わずに動かす ・BIOSから呼び出されるプログラム (0x7c00にロードされるやつが有名) ・UEFIアプリケーション ・Webブラウザ上に画面を出す ・CGI (サーバ側で動かす) ・WebAssembly (クライアント側で動かす) ・マイコンで動かす ・グラフィック液晶/有機EL (各種シリア...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタとアドレス
- 返信数: 7
- 閲覧数: 19821
Re: ポインタとアドレス
関数の引数における int array[] は int* array を意味するシンタックスシュガーなので、
配列ではなくポインタの値のコピーが渡ることになります。
配列ではなくポインタの値のコピーが渡ることになります。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタとアドレス
- 返信数: 7
- 閲覧数: 19821
Re: ポインタとアドレス
関数f2の引数gnは関数f1から渡される*gnのコピーなので、
関数f2内で引数gnを書き換えても関数f1における*gnには影響しません。
そして、関数mainのgnや関数f1の*gnを書き換えるコードは存在しないので、
関数main内の変数gnの値は初期化した時の0のままとなります。
関数f2内で引数gnを書き換えても関数f1における*gnには影響しません。
そして、関数mainのgnや関数f1の*gnを書き換えるコードは存在しないので、
関数main内の変数gnの値は初期化した時の0のままとなります。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 最小値が出力できない、(ド素人質問です)
- 返信数: 5
- 閲覧数: 18700
Re: 最小値が出力できない、(ド素人質問です)
if (n == 0) break; else { min = n; max = n; } の部分で、0でない値が入力された場合常にminおよびmaxをnに設定してしまいますね。 ここでは、最初の入力でのみminおよびmaxを設定するようにするとよいでしょう。 例えば int n, average, max, min; int isFirst = 1; /* 最初の入力かを表す変数を追加 */ int total = 0; int times = 0; while (1) { printf("数字を入力して下さい(0で終了)"); scanf("%d", &n); if (n == 0) b...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: sqlite3_prepare_v2でエラー処理に入ってしまいます
- 返信数: 7
- 閲覧数: 17695
Re: sqlite3_prepare_v2でエラー処理に入ってしまいます
insert の対象である MY_DATA テーブルが無いためにエラーになっている可能性が考えられます。
参照している MY_DATA.db が(正しいディレクトリに)存在するか、
正しく MY_DATA テーブルを作ったか(テーブル名にtypoが無いかなど)を確認してください。
参照している MY_DATA.db が(正しいディレクトリに)存在するか、
正しく MY_DATA テーブルを作ったか(テーブル名にtypoが無いかなど)を確認してください。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 条件を増やすか否か
- 返信数: 6
- 閲覧数: 4577
Re: 条件を増やすか否か
例えば Compiler Explorerでコンパイル してみると、以下のようになりました。 extern int mode, oldData, newData; #define AUTO 123 void test1(void) { if(mode == AUTO) oldData = newData; } void test2(void) { if(mode == AUTO && oldData != newData) oldData = newData; } test1: cmpl $123, mode(%rip) je .L4 ret .L4: movl newData(%rip), ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ナップサック問題について
- 返信数: 3
- 閲覧数: 2929
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ナップサック問題について
- 返信数: 3
- 閲覧数: 2929
Re: ナップサック問題について
・knapsack関数の返り値 (重量) をv (価値) 系の変数に代入している
・再帰呼び出しにより ret_price が指す先に格納された値を無視している
・重量と価値を独立に比較し、小さくない方を採用している
というのがおかしいですね。
・再帰呼び出しする際、 ret_price にポインタを渡す用の新しい領域 (変数) を用意し、渡すようにする
・格納された値 (価値) を比較し、小さくない方が得られた方に対応する返り値 (重量) を採用するようにする
というようにすると改善するでしょう。
・再帰呼び出しにより ret_price が指す先に格納された値を無視している
・重量と価値を独立に比較し、小さくない方を採用している
というのがおかしいですね。
・再帰呼び出しする際、 ret_price にポインタを渡す用の新しい領域 (変数) を用意し、渡すようにする
・格納された値 (価値) を比較し、小さくない方が得られた方に対応する返り値 (重量) を採用するようにする
というようにすると改善するでしょう。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語でスリングショットゲーム
- 返信数: 2
- 閲覧数: 3535
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語でカレンダー
- 返信数: 6
- 閲覧数: 17743
Re: C言語でカレンダー
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
ググれば例がいっぱい出てきますね。
C言語 カレンダー - Google 検索
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
ググれば例がいっぱい出てきますね。
C言語 カレンダー - Google 検索
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 中央値をifで
- 返信数: 4
- 閲覧数: 11562
Re: 中央値をifで
・共通の出力を行う部分は1個にまとめる ・それぞれの値が中央値になっているかを確認し、中央値になっているものを出力する #include <stdio.h> int main(void) { int a, b, c; /* a, b, c の入力 */ printf("(%d, %d, %d)の中央値は ", a, b, c); if ((b <= a && a <= c) || (c <= a && a <= b)) printf("%d", a); else if ((a <= b && b <= c) || (c <= b && b <= a)) printf("%d", b); els...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 中央値をifで
- 返信数: 4
- 閲覧数: 11562
Re: 中央値をifで
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
コードしか書かれていないようですが、何か質問はありますか?
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
コードしか書かれていないようですが、何か質問はありますか?
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxLibでの個人製作について質問
- 返信数: 5
- 閲覧数: 4725
Re: DxLibでの個人製作について質問
もう一点質問になってしまうのですが、→の移動判定が高速になってしまい、キーを押し続けると高速で移動することで選択が困難な状態になってしまいます。 原因としては、毎フレームキーの入力判定を取っているため高速で移動し、選択が困難になっていると思うのですが、適切に処理をするにはどうすればいいでしょうか。 例えば、CheckHitKey関数のかわりに グローバル変数の扱いに気を使ってみよう (龍神録プログラミングの館) で紹介されているCheckStateKey関数を用い、 戻り値が1 (キーが押され始めた直後のフレームである) のときだけカーソルを移動するようにするといいと思います。 #2 ☆海美...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxLibでの個人製作について質問
- 返信数: 5
- 閲覧数: 4725
Re: DxLibでの個人製作について質問
関数 ChooseTime において、例えば最初 Choose == 0 で右キーを押した時 1. Choose == 0 なので、 Choose += 1; により Choose = 1 となる 2. Choose == 1 なので、 Choose == 1; により Choose = 0 となる となり、結局Chooseの値が変わらないことがあります。 以下のように、1回のChooseTimeの実行につき1組のキー判定のみ実行するようにすると改善するでしょう。 (この例ではswitchを使いましたが、else ifなどでもいいでしょう) int ChooseTime() { switch ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列を逆順に表示したい
- 返信数: 12
- 閲覧数: 8018
Re: 文字列を逆順に表示したい
そもそもここでセミコロンが抜けているため、
提示するコードをC言語としてコンパイルしようとするとコンパイルエラーになるはずです。
何をどうやって実行しているのですか?
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列を逆順に表示したい
- 返信数: 12
- 閲覧数: 8018
Re: 文字列を逆順に表示したい
プログラミングではイコールの左側に右側を入れるのですね C言語では=演算子を用いることで右辺の値を左辺の変数に代入できますが、 一般に「プログラミングではイコールの左側に右側を入れる」とは限りません。 例えば、BASIC言語では=を代入ではなく比較に用いることがあります。 なぜなんの文字列も帰ってこないのか scanf("%d",n); という行において、本来渡すべきnへのポインタ &n ではなくnの値そのものを渡してしまっているため、 nは未初期化なので読み込んだ値をデタラメな場所に書き込むようscanf関数に指示してしまい、 その結果アクセス違反となり、文字列を出力する前に強制終了してし...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: scanfでint関数がおかしくなる
- 返信数: 2
- 閲覧数: 3224
Re: scanfでint関数がおかしくなる
変数dを配列ではなく、普通のint型にするといいでしょう。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 違いを教えてください
- 返信数: 4
- 閲覧数: 4276
Re: 違いを教えてください
int *w = 5; ポインター変数wに、即値を直接代入することは未定義のはずです。 (0を除く)整数からポインタへの変換は「処理系定義」であり、「未定義」ではないと思います。 ( N1570 6.3 Conversions → 6.3.2.3 Pointers) ただし、 int *w = 5; printf("%d\n",w); のように、書式 %d に int* 型の値を渡すのは、書式と渡されるデータの型がマッチしないので未定義動作になります。 (N1570 7.21.6.1 The fprintf function の 9) もし、アドレス値を出力したいのであれば、 #includ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ムービーグラフィックの動画の再生について
- 返信数: 2
- 閲覧数: 3483
Re: ムービーグラフィックの動画の再生について
動画の再生状態を得る(GetMovieStateToGraph)のは停止中か再生かであって、終了とは関係なさそうで…… なぜそう考えるのですか? GetMovieStateToGraph 関数の説明 を見ると、 もし0が返ってきたら停止中、1なら再生中となります。 因みに動画の再生が終了するか PauseMovieGraph 関数で再生に ポーズを掛けると停止中となります。 と書かれており、停止中かどうか(かつポーズをしていないか)で動画の再生が終了したかを判定できることがわかります。 さらに、 PlayMovieToGraph 関数の説明 に載っているサンプルコードを見ると、 // ルー...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: バブルソートの結果がうまく表示されない
- 返信数: 4
- 閲覧数: 5181
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: _kbhit()のようなキー操作
- 返信数: 1
- 閲覧数: 3461
Re: _kbhit()のようなキー操作
now_on_key が char 型なので、60fpsの時約2秒を超えて長押しすると誤動作する可能性がありますが、
他は間違いを見つけられませんでした。
(見落としがあったらごめんなさい)
MonitoringKey() を1フレームに複数回呼び出すなど、提示されていないコードに間違いがある疑いがあります。
他は間違いを見つけられませんでした。
(見落としがあったらごめんなさい)
MonitoringKey() を1フレームに複数回呼び出すなど、提示されていないコードに間違いがある疑いがあります。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: スネークゲーム、伸ばすところがうまくいかない
- 返信数: 14
- 閲覧数: 9142
Re: スネークゲーム、伸ばすところがうまくいかない
OnTimer()内で呼んでいるのですが、それで実行するとウィンドウが一瞬で閉じてしまいます このような場合、バグにより強制終了になっていることを疑うべきですね。 今回の場合、mPLength がグローバル変数のデフォルト値である0のままUpdate関数を実行しているため、 //★座標を後ろのパーツから更新(ひとつ前のパーツの座標にする) for ( auto i = mPLength-1; i; --i ) { の部分で i が -1 からループを開始するために範囲外へのアクセスが発生し、 i の値が十分小さくなるとアクセス先が有効なメモリ領域を外れてしまい、強制終了になることがあるようです。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一部だけ表示されない
- 返信数: 7
- 閲覧数: 5775
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: c++ リンクエラー
- 返信数: 5
- 閲覧数: 5544
Re: c++ リンクエラー
コンパイルコマンドの main.cpp と *.cpp で main.cpp が二重にコンパイル (リンク) されてしまっているようですね。
main.cpp を消して *.cpp だけにするといいかもしれません。
main.cpp を消して *.cpp だけにするといいかもしれません。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ブロックが表示されない
- 返信数: 4
- 閲覧数: 4523
Re: ブロックが表示されない
put()の呼び出し以降に描画処理が全く無いようですね。
gFieldを参照した描画処理をしているforループの前にput()を呼び出すべきではないでしょうか?
gFieldを参照した描画処理をしているforループの前にput()を呼び出すべきではないでしょうか?
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: インクルードする場所(C言語の館)
- 返信数: 2
- 閲覧数: 4039
Re: インクルードする場所(C言語の館)
定義した GLOBAL を function.h 内で使うからだと思います。
C言語やC++では、定義された識別子を使いたいときは、今見ている場所より前で定義された識別子しか使えません。
龍神録プログラミングの館 - 宣言の仕方を工夫しよう
C言語やC++では、定義された識別子を使いたいときは、今見ている場所より前で定義された識別子しか使えません。
龍神録プログラミングの館 - 宣言の仕方を工夫しよう
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語の館のソースのある部分ができない・わからない(2)
- 返信数: 11
- 閲覧数: 8425
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語の館のソースのある部分ができない・わからない(2)
- 返信数: 11
- 閲覧数: 8425
Re: C言語の館のソースのある部分ができない・わからない(2)
imageは配列のはずなので、それぞれの要素を出力しないとダメですね。
例えば↓
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: フィールドとの当たり判定
- 返信数: 5
- 閲覧数: 4806
Re: フィールドとの当たり判定
C言語の館(9章)では、||になっていたのですがどういうことでしょうか? if(!(x<10 || x>FIELD_MAX_X-10 || y<5 || y>FIELD_MAX_Y-5)){//計算結果移動可能範囲内なら ch.x=x , ch.y=y;//実際に移動させる } ( https://dixq.net/rp/9.html より) || を使って「移動先が範囲外か」を判定し、! で論理を反転することで「範囲内か」を判定しているようですね。 また、C言語の館は初期の位置がちゃんと下の方の真ん中で、どこで初期のx,yを定義しているのでしょうか? first_ini 関数のようですね。...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: キャラの表示がうまくいかない
- 返信数: 10
- 閲覧数: 7293
Re: キャラの表示がうまくいかない
後もう一つ、frame_cntを毎フレーム0で初期化しているので、宣言だけにしたのですが、そこは直ったのですがwarningが出ます。修正したほうがいいでしょうか? 初期化されていない自動変数の値を使うと未定義動作になるので、やってはいけません。 (C++のクラスの中には何も書かなくても初期化されるものもありますが、intなどのプリミティブは初期化されません) また、この関数内でこの関数で使う変数を宣言・(初期化)しちゃっているのはよくないでしょうか? C言語の館が毎フレーム呼ばれる関数内で宣言・(初期化)していたので・・・ ものによります。 この関数の中でしか使わず、関数の実行が1回終わっ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: キャラの表示がうまくいかない
- 返信数: 10
- 閲覧数: 7293
Re: キャラの表示がうまくいかない
起こる現象としては、起動して何もキー入力をしないと普通に前向き時のアニメーションをするのですが、 一回でも方向キーを押すと、ニュートラル状態でも正常に動きません。 方向キーを押している間は表示されるのですが、離すと消えてしまいます。 今のプログラムには、 ・左右キーを押した後離した時に、ch.imgをニュートラル用の値に戻す処理が無いので、ch.imgがどんどん増えていく ・左右キーが押されている場合、毎フレームch.imgを特定の値にセットするので、アニメーションにならない という問題がありますね。 //左右キ-が押されていなかったら for (int i = 0; i < 2; i++)...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 質問
- 返信数: 5
- 閲覧数: 4948
Re: 質問
まず、 前のトピック で指摘されている通り、トピックのタイトルの付け方を直すべきでしょう。 その際、タイトルは「質問」なんかではなく、投稿の内容を端的に示す具体的なものにしましょう。 次に、簡単なところから直していきましょう。 実行結果は「検索する文字を入力」なのに、 プログラムでは「検索する文字列を入力」となっており、余計な「列」が入っています。 また、実行結果は「文字列apple_banana_orange中に」なのに、 プログラムでは「文字列%sの中に」となっており、余計な「の」が入っています。 インデントも整えるといいでしょう。 最後に、アルゴリズムを直すべきでしょう。 適当な方法で文...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 質問2
- 返信数: 4
- 閲覧数: 4752
Re: 質問2
・宣言と定義でstr_copyの型が違う ・初期化していない配列str2の要素の値を使おうとしている ・constが付いたポインタの指すものを書き換えようとしている ・pstr1の指す位置を動かそうとしていない ・必ず2要素以上コピーするため、コピー元に空文字列を渡すと誤動作する という問題がありますね。 ↓ 修正版 #include<stdio.h> #define SIZE 100 unsigned str_copy(char *pstr1,const char *pstr2); int main(void){ char str1[SIZE]; char str2[SIZE]; print...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 質問
- 返信数: 7
- 閲覧数: 5895
Re: 質問
合計が0になるような入力を与えると、0になりますね。
https://wandbox.org/permlink/D9vuxLtdErngiuIM
オフトピック
訳:検証して正しい合計が出ることを確認しているので、「0になる」とだけ言われても原因はわかりかねます。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 質問
- 返信数: 7
- 閲覧数: 5895
Re: 質問
0にならないようにするには、psum ではなく、psum「が指している変数」を書き換えるようにするといいと思います。 void array_sumof(int *vc,int no, int *psum){ int i; for(i=0;i<no;i++){ // psumを書き換える // psum+=*vc; // psumが指している変数を書き換える *psum+=*vc; } } また、配列の先頭要素 *vc を no 回足すのではなく、配列の各要素 vc[i-no] を足すようにしたほうがよさそうですね。 「今日中」に間に合わないようにするために待ったのではなく、単に質問を見たタイミ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語の館のソースのある部分がわかりません
- 返信数: 6
- 閲覧数: 6151
Re: C言語の館のソースのある部分がわかりません
はい、別物ですね。
extern はC言語の予約語であり、ユーザが定義しなくても使えます。
GLOBAL はただの識別子であり、ユーザが定義(または宣言)しないと使えません。
GLOBAL は関数でないもの(変数)について使われていますよね?
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヘッダファイルについてうまくいかない
- 返信数: 25
- 閲覧数: 28975
Re: ヘッダファイルについてうまくいかない
「C4530」でググった最初の2個
コンパイラの警告 (レベル 1) C4530 | Microsoft Docs
アンワインド セマンティクス って何? | の回想録
メッセージの通り、オプション /EHsc を追加すればいいのではないのでしょうか?
コンパイラの警告 (レベル 1) C4530 | Microsoft Docs
アンワインド セマンティクス って何? | の回想録
メッセージの通り、オプション /EHsc を追加すればいいのではないのでしょうか?
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヘッダファイルについてうまくいかない
- 返信数: 25
- 閲覧数: 28975
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヘッダファイルについてうまくいかない
- 返信数: 25
- 閲覧数: 28975
Re: ヘッダファイルについてうまくいかない
ヘッダファイルに宣言を書いてうまくいきました。 main.cpp #include <iostream> #include "test.h" int main(void) { std::cout << "main 1\n"; test(); std::cout << "main 2\n"; return 0; } test.cpp #include <iostream> void test(void) { std::cout << "test\n"; } test.h #ifndef TEST_H #define TEST_H void test(void); #endif header_te...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヘッダファイルについてうまくいかない
- 返信数: 25
- 閲覧数: 28975
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マウスがホバーされたら文字を変更
- 返信数: 4
- 閲覧数: 4602
Re: マウスがホバーされたら文字を変更
条件式が悪いです。 menu[i].y >= mouseY && menu[i].y + 50 <= mouseY は、書き換えると menu[i].y + 50 <= mouseY && mouseY <= menu[i].y となりますが、これを満たす整数 menu[i].y および mouseY は存在しません。 xについて、同様に textWidth が正のとき、条件を満たす整数 menu[i].x および mouseX は存在しません。 (オーバーフローは考慮しないこととします) if (menu[i].x <= mouseX && mouseX <= menu[i].x + t...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの選択項目について
- 返信数: 4
- 閲覧数: 4580
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの選択項目について
- 返信数: 4
- 閲覧数: 4580
Re: ゲームの選択項目について
ボタンが押されているフレーム数をカウントし、 ・1フレーム目 ・aフレーム目以上で、フレーム数からaを引いた数をbで割った余りが0 のいずれかの時に移動するようにするといいでしょう。 aは長押しと判定されるまでのフレーム数、bは長押し時に移動する間隔を表します。 こんな感じかな。 (動作未確認です。typoなどあるかもしれません。) const int LONG_THRESHOLD = 30, MOVE_INTERVAL = 5; int upCount = 0, downCount = 0; while(ProcessMessage() == 0 && CheckHitKey(KEY_INP...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: for文とscanf関数を用いて行列計算プログラムをうまく作れない
- 返信数: 3
- 閲覧数: 4425
Re: for文とscanf関数を用いて行列計算プログラムをうまく作れない
行列を読み込む所で scanf に渡している書式に余計な空白が入っているため、
数値と空白を読み込んだ後、また空白以外の文字を読み込むまで次の処理に行かなくなっています。
余計な空白を削除するといいでしょう。
数値と空白を読み込んだ後、また空白以外の文字を読み込むまで次の処理に行かなくなっています。
余計な空白を削除するといいでしょう。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 特定の角度を返す関数
- 返信数: 15
- 閲覧数: 10879
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 特定の角度を返す関数
- 返信数: 15
- 閲覧数: 10879
Re: 特定の角度を返す関数
「角度」を求めようとせず、正規化した「方向ベクトル」を求め、それを用いて移動するのはどうですか? void Player1Input() { int PosX, PosY; PosX = PosY = 0; GetTouchInput(0, &PosX, &PosY, NULL, NULL); if ((PosX > 0) && (PosY > 0)) { double X, Y, speed; X = Y = 0; speed = 1.0; // 各辺の長さを求める double a, b, c; a = b = c = 0.0; a = (PosX - s_iPlayerPosX); b ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: Core2とUnitV2について質問です。
- 返信数: 1
- 閲覧数: 3442
Re: Core2とUnitV2について質問です。
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 'n' was not declared in this scopeというエラーが 変数nを定義せずに使ってしまっているので、定義を追加するといいでしょう。 ついでに、変数iも定義せずに使っていますね。 // 変数nの宣言をする // | 唐突に出てきた謎の変数iの代わりに、宣言した変数nを使う // | | // v v for (int n = 0; n < NUM_LEDS; n++ ){ dig...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 制限時間から減らす
- 返信数: 3
- 閲覧数: 4124
Re: 制限時間から減らす
例えば、「残り時間」を直接持たず、「開始時刻」と「現在時刻」から計算している場合は、
「開始時刻」を前にずらすことで「その分余計に時間が経過した」すなわち「残り時間が減った」
状態を作ることができます。
「開始時刻」を前にずらすことで「その分余計に時間が経過した」すなわち「残り時間が減った」
状態を作ることができます。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列から共通の文字を取り出したいです
- 返信数: 2
- 閲覧数: 3715
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語で幾何学的模様をプログラミングする。
- 返信数: 13
- 閲覧数: 7862
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: exeでcsvファイルを読み込みたい
- 返信数: 1
- 閲覧数: 3562
Re: exeでcsvファイルを読み込みたい
できるはずです。
読み込もうとしているファイル名が正しいか、exeファイルを適切なワーキングディレクトリで実行しているかを確認してください。
読み込もうとしているファイル名が正しいか、exeファイルを適切なワーキングディレクトリで実行しているかを確認してください。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 正方形の中に正方形を出力する
- 返信数: 4
- 閲覧数: 4570
Re: 正方形の中に正方形を出力する
for (i = 0; i < Ysize; i++) { for (j = 0; j < Xsize; j++) { if (iとjが表す位置が正方形の内部である) { iとjが表す位置のピクセル値を255にする; } else { iとjが表す位置のピクセル値を0にする; } } } という感じのプログラムにするといいと思います。 この中でわからない部分はありますか? char OutFile[200]; strcpy(OutFile, argv[1]); この部分は、argv[1]を直接ファイル名として使えばいいのに、無駄にデータのコピーを行い、無駄にバッファオーバーランを起こすリスク...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: nの階乗を求めるプログラム
- 返信数: 4
- 閲覧数: 4303
Re: nの階乗を求めるプログラム
学校の先生の教えに反し、試験の時にそうすると不正解とされるから…とかでしょうか?あいうえお さんが書きました: ↑3年前for文の初期値を2にしてはいけない理由を知りたいです。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語画像処理 出力する画像のサイズを変更する
- 返信数: 3
- 閲覧数: 4480
Re: c言語画像処理 出力する画像のサイズを変更する
コードを見ると、画像ファイル中にヘッダやパディングなどは無く1ピクセルを1バイトで表現するようなので、 出力サイズを表す変数を追加し、それに従って出力データを確保、設定、書き出しするといいでしょう。 また、提示されたコードはC言語ではなくC++ですね。 C言語にするには、newのかわりにmalloc、delete[]のかわりにfreeを使うといいでしょう。 Man page of MALLOC (freeの説明も載っています) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <str...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語自由課題
- 返信数: 3
- 閲覧数: 4385
Re: c言語自由課題
「文字に関する関数」を使ってはいけないというのに注意したいですね。 例えば、 ・書式指定 文字 列を扱うprintf系やscanf系の関数 ・ 文字 の入出力を行うgetchar関数、putchar関数、getc関数、fgetc関数、putc関数、fputc関数 ・ 文字 列の入出力を行うgets関数、puts関数、fgets関数、fputs関数 などは使えなそうですね。 となると、通常のパソコン環境であれば、入出力はfread関数やfwrite関数を使用するのがいいでしょう。 システムコールや、マイコン環境におけるメモリマップドI/Oを使うという選択肢もあるでしょう。 さらに、「数学関数や文...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語でSTGを作っています
- 返信数: 2
- 閲覧数: 3915
Re: C言語でSTGを作っています
g_pPlayer が NULL かをチェックせずに g_pPlayer->getPos を使ったことで落ちているようなので、
g_pPlayer->getPos など g_pPlayer をデリファレンスする前に必ず g_pPlayer が NULLでないかをチェックし、
NULL だった場合はデリファレンスしないようにするといいかもしれません。
g_pPlayer->getPos など g_pPlayer をデリファレンスする前に必ず g_pPlayer が NULLでないかをチェックし、
NULL だった場合はデリファレンスしないようにするといいかもしれません。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語について質問
- 返信数: 2
- 閲覧数: 4457
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語でシューティングを作ってます
- 返信数: 4
- 閲覧数: 4462
Re: c言語でシューティングを作ってます
void atari_hantei_jiki_to_tekitama(void) { if (shouhai != 0) { return; } if ((tekitama_x < jiki_x + 20) && (tekitama_x > jiki_x - 20) && (tekitama_y < jiki_y + 20) && ( tekitama_y > jiki_y - 20)) { tekitama_sonzai = 0; HP = HP + 1; } if (HP == 3) { shouhai = -1; } } 当たった時に tekitama_sonzai を0にしているもの...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++のマウス座標を取得について
- 返信数: 3
- 閲覧数: 4946
Re: C++のマウス座標を取得について
・printf関数を使うため、 #include <cstdio> を追加します ・ POINT構造体 の要素はLONGなので、printf関数の仕様に合わせるためにintにキャストします ・座標を取得したいだけなのにSetCursorPosをするのは意味不明なので、削除します #include <windows.h> #include <iostream> #include <cstdio> int main() { while(1) { POINT pt; //マウスの現在の座標を取得する GetCursorPos(&pt); printf("X座標%dY座標%d", (int)pt.x,...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: javascript 最小二乗法のコード
- 返信数: 2
- 閲覧数: 4148
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレス帳を作っています。
- 返信数: 6
- 閲覧数: 6433
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...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ロード関数を作りたい
- 返信数: 1
- 閲覧数: 3742
Re: ロード関数を作りたい
別のソースファイルからでも使用できる配列を指すポインタを指定すれば、
別のソースファイルからでも使用できるようになると思います。
具体的なうまくいっていないコードなどはありますか?
別のソースファイルからでも使用できるようになると思います。
具体的なうまくいっていないコードなどはありますか?
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語 戻り値をもたない関数voidを使った課題
- 返信数: 3
- 閲覧数: 4983
Re: C言語 戻り値をもたない関数voidを使った課題
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
課題は「大文字のアルファベットを入力」のはずなのに、数値の読み書きしかしていない、というのもおかしいですね。
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
課題は「大文字のアルファベットを入力」のはずなのに、数値の読み書きしかしていない、というのもおかしいですね。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: Pythonでの実行エラー
- 返信数: 2
- 閲覧数: 5099
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 自機の弾と敵との当たり判定処理
- 返信数: 5
- 閲覧数: 6215
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...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列の値が正しくない
- 返信数: 2
- 閲覧数: 4289
Re: 配列の値が正しくない
C言語では、配列の添字は0から始まり、宣言時には最大の添字ではなく要素数を指定します。 今回の場合、配列 b は float[2] 型の要素を1個しか持たない配列として宣言されているので、 b[1] は確保されておらず、範囲外となります。 したがって、 scanf("%f",&b[1][0]); は、値の読み込みに成功した場合、範囲外への書き込みが発生し、周りのデータが破壊される原因となります。 質問文で言及されている b[0][1] へのアクセスがコード内に見当たらないので、この行を scanf("%f",&b[0][1]); とするべきであると予測できます。 他の修正方法としては、 ・範囲...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 原因不明
- 返信数: 3
- 閲覧数: 5633
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 原因不明
- 返信数: 3
- 閲覧数: 5633
Re: 原因不明
for (j = 0; j < 61; j++) { space[i][j] = ' '; } このループを抜けた直後、jの値は61になります。 その後 space[i][j] = 0; が実行されますが、space[i]は61要素しか無いので、これは範囲外へのアクセスとなり、エラーの原因になります。 C言語では配列の添字は0から始まること、 および配列の宣言時には最大の添字ではなく要素数を指定することに注意し、 十分な数の要素を確保しなければいけません。 ポインター値を%sで出力するって、これは何がしたいんですか? %sは文字列(ナル文字で終端された文字の配列)の先頭へのポインタをとり、...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 自機の弾と敵との当たり判定処理
- 返信数: 5
- 閲覧数: 6215
Re: 自機の弾と敵との当たり判定処理
void CheckHit::CollisionAll()関数にあるfor(auto enemy : _list)の部分でエラーがでてしまい、デバッグが出来ない状態です。 該当部分で使われている変数? _list の宣言が提示されたコードの中にありません。 どのようなエラーが出ますか? 他クラスのstd::listにアクセスする方法があるのでしたら教えていただきたいです。 「他クラス」でstd::listにアクセスする方法を作って(アクセサの関数を作るとか、publicにするとか)、 それを利用し、「他クラス」の名前(staticの場合)またはインスタンス(staticでない場合)を指定して...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 課題
- 返信数: 3
- 閲覧数: 3093
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が呼ばれる...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヒープの使い方?修正投稿です
- 返信数: 5
- 閲覧数: 6228
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヒープの使い方?修正投稿です
- 返信数: 5
- 閲覧数: 6228
Re: ヒープの使い方?修正投稿です
Heap_Max においても、 Heap_Min においても、pop 関数内において
という処理があります。
この2個のクラスでは比較が反対になるはずなのに、これは不自然ですね。
std::priority_queue が使えるでしょう。
この2個のクラスでは比較が反対になるはずなのに、これは不自然ですね。
同意します。
std::priority_queue が使えるでしょう。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: アプリを制作したいのですが
- 返信数: 1
- 閲覧数: 4172
Re: アプリを制作したいのですが
DXライブラリは静的リンクなので、(他に依存しているランタイムが入っているなど対応した環境ならば)
DXライブラリをダウンロードしていないPCでも実行できるはずです。
「DXライブラリをダウンロードしていないPCでは実行してはいけない」的なライセンスの条件も無いはずです。
実際に「実行しても大丈夫」かどうかは、プログラムの内容などによるでしょう。
(例えば、Cドライブの内容を全部消そうとするプログラムを実行するのは危険でしょう)
DXライブラリをダウンロードしていないPCでも実行できるはずです。
「DXライブラリをダウンロードしていないPCでは実行してはいけない」的なライセンスの条件も無いはずです。
実際に「実行しても大丈夫」かどうかは、プログラムの内容などによるでしょう。
(例えば、Cドライブの内容を全部消そうとするプログラムを実行するのは危険でしょう)
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 選択肢を選んだら、その選択肢が枠に入るプログラム
- 返信数: 2
- 閲覧数: 4677
Re: 選択肢を選んだら、その選択肢が枠に入るプログラム
質問はありますか?
フォーラムルールを読み、それに沿った投稿をお願いします。
フォーラムルールを読み、それに沿った投稿をお願いします。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: DXライブラリにおけるマウス入力機能
- 返信数: 3
- 閲覧数: 5279
Re: DXライブラリにおけるマウス入力機能
とりあえず、 変数 wheel_cnt が、宣言されているだけで全く使用されていない。 MouseInput::GetStateMouse がせっかく int を返すのに、GetMousePoint のエラー処理がされていない。 leftPrevState = leftState; および rightPrevState = rightState; が、if文の両方の節に書かれている。 prevCurX や prevCurY の処理と同様、前に出した方が良さそう。 leftState や rightState のインクリメント時のオーバーフローチェックが無い。 多分20億フレームも連続して使うや...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: DirectX9のZバッファをSetTextureに設定して値を取得したい
- 返信数: 3
- 閲覧数: 4840
Re: DirectX9のZバッファをSetTextureに設定して値を取得したい
どのように解決したかを書いてください。
フォーラムルールより
フォーラムルールより
トピックを立て、解決した場合は「解決しました」とだけ書かず、どうやって解決したか他の人に分かるように書いて からトピックを終了して下さい。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語の基礎がわかりません。
- 返信数: 3
- 閲覧数: 5766
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...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++ 表示が思う通りにいかない
- 返信数: 4
- 閲覧数: 6506
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 ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 標準体重を求めるプログラム
- 返信数: 2
- 閲覧数: 4547
Re: 標準体重を求めるプログラム
課題の丸投げは禁止です。 フォーラムルール を読んで従ってください。 a. 質問は具体的にする 詳しくは「回答者が困る質問例」をご覧下さい 「うまくいきません」という質問は大抵回答に困ります。 自分は今何がしたくて どう取り組んで(作ったプログラムはどれで どのようなエラーやトラブルで困っていて 自分は何が解らないのか、知りたいのか 今のCの知識はどの程度なのか この5点をしっかりと明記して下さい。 c. 宿題の質問は OK! でも丸投げは NG! 宿題の文章だけ書いて「誰か答え教えて下さい」は× 課題の丸投げ(問題文だけ書く事)は禁止です。 ただし上のように記載してもらえればこれは当てはまり...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: メニュー画面の実装について
- 返信数: 7
- 閲覧数: 7798
Re: メニュー画面の実装について
CheckSoundMem関数はエラーの時は -1 を返します。
-1 は、条件式として使った場合は真とみなされます。
削除後のサウンドハンドルを渡すと、エラーになると予想できます。 として、「再生中」の時のみハンドルを返すようにするとどうでしょうか?
-1 は、条件式として使った場合は真とみなされます。
削除後のサウンドハンドルを渡すと、エラーになると予想できます。 として、「再生中」の時のみハンドルを返すようにするとどうでしょうか?
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: メニュー画面の実装について
- 返信数: 7
- 閲覧数: 7798
Re: メニュー画面の実装について
その戻り値をStopSoundMem(ImageMusic::getIns() -> getMusic) みたいな感じで引数に用いればうまくいくと思ったのですがダメでした。 「みたいな感じ」って具体的にどのような感じなのでしょうか? getMusic関数を呼ばず、関数のポインタをStopSoundMemに渡す感じ、ということですか? 「ダメでした」「うまく機能してくれませんでした」とは、具体的にどううまく行かなかったのですか? (デタラメな値が帰る、帰る値はそれっぽいけど再生の停止ができない、など) また、このgetMusicの実装だと、_images の要素に再生中の音声が無い場合に 未初...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: ジェネリック型を使ったFilter関数の使い方がわかりません
- 返信数: 2
- 閲覧数: 4920
Re: ジェネリック型を使ったFilter関数の使い方がわかりません
ジェネリック型についてはよくわからないですが、とりあえずコンパイルが通るようにしてみました。 ・ std::function を使うため、ヘッダ functional を include する ・HogeTest のコンストラクタ内の文の最後にセミコロンを補う ・HogeTest のコンストラクタとデストラクタをpublicにする ・HogeTest にメンバ hoge が無いため、追加する ・main関数の返り値の型をvoidではなくintにする ・Filter 関数に渡す第一引数をstd::vectorへのポインタではなくstd::vectorにする ・ForEach が定義されていないの...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: メニュー画面の実装について
- 返信数: 7
- 閲覧数: 7798
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...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾がうまく発射できない
- 返信数: 6
- 閲覧数: 6990
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 弾がうまく発射できない
- 返信数: 6
- 閲覧数: 6990
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クラス(ソースは省きま...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: キャッチゲーム
- 返信数: 7
- 閲覧数: 7265
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 関数...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語 数字を10分割するプログラム
- 返信数: 2
- 閲覧数: 5066
Re: C言語 数字を10分割するプログラム
まず訂正をします。 100個のデータから生成されるデータは、1001個ではなく991個でした。 (最初のデータはそのまま使い、残り99個のデータ1個につき10個のデータが生成されると考えられるので) すると、1000個のデータを得るには残りの9個をどうやって生成するのかを考える必要があります。 そして、991個のデータを生成する部分を一般化してみました。 後は、1000個ではなく991個でよいのであれば、 入出力と間の値を計算する部分の仕様を決め、実装すれば、プログラムができるでしょう。 #include <stdio.h> #include <stdlib.h> #include <stri...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語 数字を10分割するプログラム
- 返信数: 2
- 閲覧数: 5066
Re: C言語 数字を10分割するプログラム
つまり,100個のデータだとしたら,それぞれの間で等分割して1000個のデータに変換したいです. これは無理そうですね。 それぞれの区間を10分割すると、100個のデータからは1001個のデータが生成されます。 したがって、「等分割」「100個のデータを1000個のデータに変換」という条件を同時に満たすのは無理と考えられます。 ただし、データの最後が例示されていないため、最後のデータを省くことで1000個にする、という選択肢はあります。 1001個でよければ、データの分割は以下のようにできます。 #include <stdio.h> int main(void) { double dataA...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C 言語 番号振りなおしにつおて
- 返信数: 1
- 閲覧数: 4438
Re: C 言語 番号振りなおしにつおて
c言語で構造体に1から順にナンバーをつけて、それをソートしてからまた、1からつけなおすにはどうすれば良いんでしょうか? 希望の処理を行うコードを書き、実行すればいいです。 初期化のための関数を作り、代入してからfor構文を使う感じでしょうか? 自分の書きやすい形、そしてできれば後日の修正や改良がしやすい(保守性が高い)形で書けばいいでしょう。 自分がしたいのは例えば下のような用意してある構造体をあいうえお順に並び替えて②①③にしてから、それを新しく上から①②③に書き換える関数を作りたいのですがどうすればいいのでしょうか? 1. あいうえお順に並び替える 2. 番号を書き換える という処理を行...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列比較のアルゴリズムについて
- 返信数: 4
- 閲覧数: 7665
Re: 文字列比較のアルゴリズムについて
とりあえずすぐにわかるのは
・i=0 で範囲外の s1[i-1] や、j=0で範囲外の s2[j-1] にアクセスしている
・strcmp で比較するデータに終端のナル文字を入れていない
・変数 i を用いたループの内側にまた同じ変数 i を用いたループがあるので、
内側のループによって変数 i の値が破壊されて外側のループがうまく回らない
あたりですね。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列比較のアルゴリズムについて
- 返信数: 4
- 閲覧数: 7665
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...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: Segmentation fault (core dumped)の解決方法
- 返信数: 4
- 閲覧数: 8409
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 で文字列を読み込む時は読み込む最大の長さを指定するべきです。 この最大の長さは、最後にナ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字を小さい順に並べるプログラム
- 返信数: 2
- 閲覧数: 5429
Re: 数字を小さい順に並べるプログラム
ごめんなさい、リンク先間違いです。
(編集の制限時間ギリギリでリンクが抜けていることに気がついたのででよく確認せずにリンクを貼り、
そのまま時間切れになってしまいました)
正しくは https://wandbox.org/permlink/rcRUewltC5f1jSwk
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字を小さい順に並べるプログラム
- 返信数: 2
- 閲覧数: 5429
Re: 数字を小さい順に並べるプログラム
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 他の回答者さんへ: 掲示板の配慮を欠いた設計により、[i]が終了タグが無いにも関わらず斜体のタグと解釈され、 隠されているようです。 コードは引用画面から読むのが良いです。 どこが間違っているのか教えて欲しいです。 まずは コンパイラ様に教えてもらいましょう 。 prog.c: In function 'main': prog.c:39:5: error: array size missing in ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 課題について
- 返信数: 3
- 閲覧数: 6063
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: includeの利用について
- 返信数: 4
- 閲覧数: 6488
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 球と円柱の当たり判定
- 返信数: 10
- 閲覧数: 10128
Re: 球と円柱の当たり判定
どう実装するかを考えて実装すればいいと思います。
・円柱は何個あるのか?
・円柱は動くのか?
・「戦う」とは具体的にどのような動作か?
・キャラクターの可能な動きは? (たとえばジャンプはできる?)
などによって、具体的な適切な実装は違ってきそうだと思います。
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 球と円柱の当たり判定
- 返信数: 10
- 閲覧数: 10128
Re: 球と円柱の当たり判定
usaoさんの言うように、円と長方形の当たり判定に帰着させる方法が良さそうですね。 まず、 点と直線と平面と交点と距離 に載っている方法で、球の中心点から円柱の中心軸に垂線を下ろした時の交点を求めます。 すると、この交点を原点、円柱の中心軸をx軸、交点と球の中心点を通る直線をy軸 (軸の向きは適当に) とした平面を考えることができ、 その平面における球の中心点、および円柱の2個の底面と中心軸の交点の座標 (≒距離) がわかるはずです。 あとは、これらの座標と、球や円柱の半径を用いて、当たり判定をする円と長方形の座標が求まります。 mixcpp-20210809.png 円と長方形の当たり判定は...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: int型からchar*にする方法を教えて下さい、、、
- 返信数: 6
- 閲覧数: 7736
Re: int型からchar*にする方法を教えて下さい、、、
変換せずにDrawFormatString関数で直接描画するのではダメですか?
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 敵を倒しきったらEND画面へ・・・
- 返信数: 12
- 閲覧数: 9633
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...