検索結果 6277 件

by みけCAT
24分前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題について
返信数: 7
閲覧数: 58

Re: 学校の課題について

コケ さんが書きました:
5時間前
上記のようにnumを100以下に設定してもうまくいきません
まず「3435は開き直り数」という例が出ているのに、100以下というのは、探索範囲が明らかに全然足りなくてダメです。
さらに、探索する過程で、外側のループのカウンタである変数numの値を破壊してしまうのもダメです。
by みけCAT
45分前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題について
返信数: 7
閲覧数: 58

Re: 学校の課題について

「すべて見つける」ということなので、何も考えないと無限に探索しないといけません。 そこで、まず探索範囲を見積もります。 おそらく、どこかで桁数を増やせば増やすほどもとの数の方が大きくなり、 操作結果が追いつかなくなるでしょう。 当然9をいっぱい使うほうが操作結果が大きくなるため、 9を並べた数とその操作結果を調べてみます。 数 操作結果 999999999 3486784401 9999999999 3874204890 99999999999 4261625379 9を10個並べた時、もとの数の方が操作結果より大きくなりました。 よって、きちんと証明はしていませんが、10桁以下の数だけ調べれ...
by みけCAT
3日前
フォーラム: C言語何でも質問掲示板
トピック: フローチャートの課題を手伝ってください
返信数: 1
閲覧数: 76

Re: フローチャートの課題を手伝ってください

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 まず、このプログラムで使われている制御構文(プログラムに単純な「上から下」以外の動きをさせる文)は、 For - Next だけで、その他のifなどは使われていないようですね。 フローチャート-繰返し型 の記法が参考になるでしょう。 例えば 05 For i=2001 to 2004 については、変数はi、初期値は2001、終了値は2004、増分は(明示されていないが)1、となりますね。 このプログラム...
by みけCAT
4日前
フォーラム: C言語何でも質問掲示板
トピック: 簡易的な戦闘プログラム
返信数: 2
閲覧数: 114

Re: 簡易的な戦闘プログラム

Kenta さんが書きました:
5日前
簡易的な戦闘プログラムをc言語を用いて以下のように実装したいです。
実装すればいいでしょう。

なお、この掲示板は質問用です。
日記が書きたいのであれば、掲示板ではなく日記に投稿することをおすすめします。
(日記は、ユーザー登録してログインしていただけると使えます)
Kenta さんが書きました:
5日前
よろしくお願いします。
何をお願いするのですか?
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: c言語に関する質問です
返信数: 2
閲覧数: 140

Re: c言語に関する質問です

C言語はチューリング完全なので、理論上チューリングマシンでできることはなんでもできます。
(現実的にはメモリの容量などの制約を受けます)

まずは書きたい「条件を満たすまで変数を加算しつづけるプログラム(最大の試行回数は4まで)」
というのがどのようなものなのか、具体的に定義しましょう。
例えば
・「条件」とは具体的にどういうものか?どうやって決めるのか?どうやって判定するのか?
・「変数を加算」って、具体的に何に何を加算する?
・「最大の試行回数」ってあるけど、「試行」って具体的に何?
・やることは「変数を加算」するだけ?出力などはしないの?
など。
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: リズムゲームの判定について
返信数: 5
閲覧数: 246

Re: リズムゲームの判定について

判定の後、同じ位置に重ねてa0.pngを描画しているので、
a0.pngの内容によりますが、これで隠してしまっている疑いがあります。
また、GOODの描画もMISSの描画も同じ座標に同じa2.pngを描画、というのも不自然ですね。
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 助けてください。
返信数: 2
閲覧数: 164

Re: 助けてください。

変数を静的配列の初期化に使おうとしている 変数 sum, ave, max, minを宣言せずに使っている 関数callを呼び出すときにa[]というのは間違っている (カッコが余計) *sumを計算する時にgを入れ忘れている *aveを計算する時に割る数が間違っている *maxや*minの計算に入力が反映されていない配列aの要素の値を使っている 修正版: #include<stdio.h> void call(int n, int a[], int *sum,int *ave, int *max, int *min); int b,c,d,e,f,g,n; int a[]; int main...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: リズムゲームの判定について
返信数: 5
閲覧数: 246

Re: リズムゲームの判定について

1. GOOD / MISS を表示するための変数を用意する (ループ前に追加) enum judge_value { NONE, GOOD, MISS; }; const int JUDGE_DISPLAY_TIME = 30; // 判定を表示する時間 (フレーム数) judge_value judge = NONE; // 表示中の判定 int judge_time = 0; // 判定を表示する残り時間 (フレーム数) 2. ノーツを消す時に、判定を表示させるように状態を更新する //bar座標更新 for (int i = 0; i < LANE_SIZE; i++) { for (...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: C言語の課題演習において、scanfのスペース区切りの文字列の読み込みについて困っております。
返信数: 5
閲覧数: 213

Re: C言語の課題演習において、scanfのスペース区切りの文字列の読み込みについて困っております。

%[^\n]は入力前に空白文字を読み飛ばさないので、%dで読み込んだ後の改行で引っかかってしまいます。 %[^\n]の前に半角スペースを入れることで空白文字を読み飛ばすようにできますが、 これだと行頭に半角スペースがある場合、それも読み飛ばされてしまいます。 %dおよび%[^\n]の後に%*cを入れることで、1文字(すなわち、改行文字)を読み飛ばすことができます。 #include <stdio.h> int main(void){ int n; char str[100]; scanf("%d%*c",&n); for(int i=0;i<n;i++){ scanf("%[^\n]%*c",...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: C++ コンストラクター のインスタンスが引数リストと一致しません
返信数: 5
閲覧数: 236

Re: C++ コンストラクター のインスタンスが引数リストと一致しません

C++では文字列リテラルはconst char*型に変換され、char*型の引数に(キャストなしで)使うことはできません。
文字列を書き換える処理は無いようなので、該当の引数をconst char*型にするといいでしょう。
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: C言語のファイルの読み込みができない
返信数: 8
閲覧数: 303

Re: C言語のファイルの読み込みができない

ファイルを読み込む際は、読み込みが成功したかを確認するべきです。 修正前 /* ファイルが終わりでない「かつ」配列を飛び出さないうちは,読み込みを続ける */ while ( ! feof(fp) && n < 10000) { fscanf(fp, "%lf %lf %lf %lf %lf\n", &(r[n]), &(z[n]),&(vr[n]),&(vz[n]),&(vphi[n])); n++; } 修正後 /* ファイルが終わりでない「かつ」配列を飛び出さない「かつ」読み込みに成功するうちは,読み込みを続ける */ while ( ! feof(fp) && n < 10000) {...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 任意のタイミング,サイズで配列を作る方法
返信数: 8
閲覧数: 624

Re: 任意のタイミング,サイズで配列を作る方法

やっぱ、static int* a; を free(a); しちゃ、まずいだろ。 static int* a;はヌルポインタに初期化され、 freeにヌルポインタを渡した場合は何もしないと決まっているので、問題ないはずです。 また、#6ではmallocに0を渡しているようですが、malloc(0)が何を返すかは処理系定義です。 #6の例では、malloc(0)はヌルポインタではないポインタを返すタイプの処理系であり、 その返されたポインタをfreeしていないため、メモリリークの発生として検出されているようですね。 以下、 N1570 より引用 6.7.9 Initialization If ...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 任意のタイミング,サイズで配列を作る方法
返信数: 8
閲覧数: 624

Re: 任意のタイミング,サイズで配列を作る方法

呼び出された時に、要素数nの配列を確保して破棄しない(static付けた時のように)関数を作りたいんですけど、 どうしてそのようなことがしたいのですか? ( The XY Problem の疑いがあります) #include <stdlib.h> void main(){return;} void f (int n) { static int* a; a = (int*)malloc(sizeof(int)*n); free(a); return; } このプログラムは、この質問の回答としては間違っています。 free(a);にとり、せっかく確保した配列が破棄されてしまいます。 #inclu...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 任意のタイミング,サイズで配列を作る方法
返信数: 8
閲覧数: 624

Re: 任意のタイミング,サイズで配列を作る方法

staticでなくてよければ、gcc拡張、もしくはC99の仕様で可変長配列(VLA : Variable-Length Array)が使えます。

コード:

void main(){return;}
void f (int n)
{
	int a[n];
	return;
}
【追記】
すいません、質問をよく読んでいませんでした。
「確保して解放しない」というのが条件なのですね。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: キャストについて
返信数: 2
閲覧数: 469

Re: キャストについて

ポインタに対する加算は、「1」を足すとそのポインタが指す型のサイズ分先へ進む、ということになります。
今回のreadRange.Beginには既にUINT64のサイズが掛けてあるので、
pDataをUINT64*にキャストしてから足すとUINT64のサイズを二重に掛けることになり、おかしくなります。
また、標準ではvoid*に加算を行うことはできません。
そこで、1バイトのデータ型へのポインタであるUINT8*にキャストをしていますね。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: フィボナッチ数列
返信数: 5
閲覧数: 259

Re: フィボナッチ数列

n>=2のとき、n項目を求めるにはn-1項目とn-2項目を使うので、n項目は必ずn-1項目よりも後に求まります。 従って、前に出力した項の次の項が求まった時に出力するといいでしょう。 また、いきなりreturnするのではなく、一旦結果をresultに格納して後で処理できるようにしました。 #include <stdio.h> int lastN = 0;//グローバル変数 int f(int n) //フィボナッチ数列を計算する関数 { int result; if(n == 0){//2項目を1と表示するため、return0としている result = 0; } else if(n == 1...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語の課題演習において、strstrを用いた文字列の比較についてのご質問です。
返信数: 10
閲覧数: 712

Re: C言語の課題演習において、strstrを用いた文字列の比較についてのご質問です。

fgetsとsscanfを用いて、標準入力から2行の文字列を比較して一行目の文字が2行目に含まれているかどうかのプログラムを作成したいです。 「sscanfを用いて」という条件があるのですね。 うーん…返り値を作るのにでも使っておきましょうか。 #include <stdio.h> #include<string.h> int main(void){ char str[1000]; char abc[1000]; fgets(str, sizeof(str), stdin); char* lf = strchr(str, '\n'); // 改行文字を探す if (lf != NULL) *...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語の課題演習において、strstrを用いた文字列の比較についてのご質問です。
返信数: 10
閲覧数: 712

Re: C言語の課題演習において、strstrを用いた文字列の比較についてのご質問です。

#2の指摘通り、sscanfの結果は使われていないので、sscanfの2行とbufの宣言は消してよさそうですね。 また、char xyzではなくchar* xyzとするべきですね。 fgetsは改行文字が入力された場合その改行文字もバッファに保存するので、 それを削除してからstrstrに渡さないとうまく検索できないという可能性があります。 #include <stdio.h> #include<string.h> int main(void){ char str[1000]; char abc[1000]; fgets(str, sizeof(str), stdin); char* lf =...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体の動的配列の記述を教えてください。
返信数: 25
閲覧数: 1144

Re: 構造体の動的配列の記述を教えてください。

ワド さんが書きました:
1ヶ月前
C言語初心者です。
あたっしゅ さんが書きました:
1ヶ月前
C++ 17 で確認。
うーん…まあ、C言語初心者だからといってC言語を使っているとは限らない、
むしろ初心者だからC言語を使うのを避けるという可能性もあるからなあ…
ただ、C++ならmalloc/freeではなくnew/deleteやstd::vectorを使うべきではないかなあ…?
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体の動的配列の記述を教えてください。
返信数: 25
閲覧数: 1144

Re: 構造体の動的配列の記述を教えてください。

nums[0].valueに入れている0についても最大値や最小値を求める対象としているため、 全て正の数を入力した時にはmin = 0となってしまいます。 また、全て負の数を入力したときにはmax = 0となってしまいます。 これを回避するには、例えばnums[0].valueにはINT_MIN (limits.hで定義) を入れておき、 &nums[0]ではなくnums[0].biggerから最大値や最小値の探索を始める、という方法が考えられます。 ただし、この場合引数を与えずに実行した時にNULLをデリファレンスしてエラーになる可能性があるので、 このケースへは別途対処するべきでしょう。 ...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体の動的配列の記述を教えてください。
返信数: 25
閲覧数: 1144

Re: 構造体の動的配列の記述を教えてください。

Meta3 さんが書きました:
1ヶ月前
読みやすくして
掲示板の不親切設計によって[​/i]が無いのにも関わらず[​i]が斜体を表すタグとして解釈され、消えています。
その消えたままのコードを使用しているため、不正なコードになっています。
codeタグを使わずに貼り付けられたコードは、表示された本文から直接コピペするのではなく、
引用ボタンを押して引用投稿用のフォームからコピペするといいでしょう。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体の動的配列の記述を教えてください。
返信数: 25
閲覧数: 1144

Re: 構造体の動的配列の記述を教えてください。

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 []で囲まれていないcodeや/codeは、codeタグではありません。 参考書に書いてあるコードを書いていたのですが、配列に不定定数を入れる部分でエラーが出ており、これの直し方がわかりません。 これは可変長配列(Variable-Length Array)といい、C99では必ず認められ、C11ではオプションの仕様です。 したがって、対応するコンパイラ(gccなど)をC99モード(gccなら-std=c...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: fgetsとsscanfで複数の数字を読み込みたいです。
返信数: 5
閲覧数: 667

Re: fgetsとsscanfで複数の数字を読み込みたいです。

書式%nを使うとそこまでに読み込んだバイト数を取得できるので、 これを用いて読み込む位置をずらしていくといいでしょう。 #include <stdio.h> int main(void){ char str[1000]; int n; int m; int i; char* p; fgets(str, sizeof(str), stdin); sscanf(str, "%d", &n); fgets(str, sizeof(str), stdin); p = str; for (i = 0; i < n; i++) { int len; if (sscanf(p, "%d%n", &m, &l...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 2次元配列の累乗について
返信数: 16
閲覧数: 898

Re: 2次元配列の累乗について

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 提示されたコードでは、aおよびbが宣言なしで使用されているため、コンパイルエラーになりますね。 以下のような手順で処理を行うといいでしょう。 ただし、擬似コード中の配列の添字は0から始まり、ループの範囲は両端を含むものとします。 xとyを読み込む y行x列の配列を確保する for jを0からx-1までループ 配列の0行j列目の値を(x-j)にする next for iを1から(y-1)までループ for...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: gccの64bit環境コンパイルでlong型を4バイトにしてくれる方法
返信数: 2
閲覧数: 623

Re: gccの64bit環境コンパイルでlong型を4バイトにしてくれる方法

どうしてもlong型を使わないといけないのですか?
int32_t型に置き換えるなどではいけないのですか?
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: エンターで処理を進める方法
返信数: 2
閲覧数: 587

Re: エンターで処理を進める方法

エンター(改行文字)が入力されるまで次に進まないようにすればいいでしょう。 #include <stdio.h> #include <stdlib.h> /* exit()用 */ void wait_enter(void) { int c; while ((c = getchar()) != '\n') { if (c == EOF) { puts("bye!"); exit(1); } } } void print(); char c; int main() { print(); printf("END\n"); return 0; } void print() { printf("1行目...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 二分探索木のプログラムを実装したいです
返信数: 9
閲覧数: 2853

Re: 二分探索木のプログラムを実装したいです

「32行目」で記述エラーを発見しました。 というのは再現できませんでしたが、 gccでコンパイル したところ、以下のコンパイルエラーが出ました。 (gccの-Werrorオプションを用いて警告もエラー扱いにしました) ロジックはチェックしていません。 2行目:あってはいけない位置に全角スペースがある (消すべき) 42行目:ifが無いのにelseがある (39~41行目を{}で囲むのを忘れた?) 45行目・74行目:ifが無いのにelseがある (代わりに} else {とするべき?) 74行目:ifが無いのにelseがある (代わりに} else {とするべき?) 82行目:代入できないも...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 二分探索木のプログラムを実装したいです
返信数: 9
閲覧数: 2853

Re: 二分探索木のプログラムを実装したいです

matcha さんが書きました:
1ヶ月前
投稿した質問を編集する方法もしりたいです
投稿した記事の右上にある鉛筆っぽいマークのボタンを押すことで編集できます。
ただし、投稿してから5分間しか編集できません。
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Dxライブラリでランダムに画像を配置したい
返信数: 3
閲覧数: 648

Re: Dxライブラリでランダムに画像を配置したい

標準のrand関数は、乱数の質が低い可能性があります。 DXライブラリには、 GetRand という乱数を取得する関数があります。 int image = LoadGraph(".\\Media\\a.jpg"); // ループ while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) { // 画面を初期化する ClearDrawScreen(); for (int i = 0; i < 10; i++) { int n = GetRand(640 - 1); int m = GetRand(480 - 1); D...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: vector<string> のソートの仕方 (STL)
返信数: 5
閲覧数: 831

Re: vector<string> のソートの仕方 (STL)

足りないところを補ってみましたが、ちゃんと動きそうに思えます。 #include <iostream> #include <vector> #include <string> #include <algorithm> using std::vector; using std::string; using std::sort; int main(void) { vector<string> g_vLink1; g_vLink1.push_back("cat"); g_vLink1.push_back("dog"); g_vLink1.push_back("rabbit"); g_vLink1.p...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 教えてください(グラフの作り方)
返信数: 5
閲覧数: 830

Re: 教えてください(グラフの作り方)

aが正の実数、qが0以上の実数で、xが実数のとき、 -2/(a*sqrt(x*x)) -2*q/(a*sqrt((x-1)*(x-1))) -pow(x-q/a, 2.0) は全て0以下 (ただしxが0, 1の時は分母が0になるので無効) ですね。 aが正、qが0のとき、 -2/(a*sqrt(x*x)) はx≠0のとき負、 -2*q/(a*sqrt((x-1)*(x-1))) はx≠1のとき0、 -pow(x-q/a, 2.0) はx≠0のとき負、x=0のとき0 なので、0, 1以外の任意の実数xについてfuncは負になります。 q=1.0/25, a=q+1のとき、q/a≒0.038であり...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 教えてください(グラフの作り方)
返信数: 5
閲覧数: 830

Re: 教えてください(グラフの作り方)

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 ([]で囲まれていないcodeや/codeは、BBCodeのcodeタグではありません) 式を Wolfram Alphaにかけて みましたが、0になるのは複素解しか出てきませんでした。 (funcが0になる実数xは無いと推測できます) また、 const double q = 1/25; は、C言語では整数同士の除算は切り捨てられるので const double q = 0; と同じになります。 これ...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 教えてください!早急!!
返信数: 2
閲覧数: 803

Re: 教えてください!早急!!

まずは作るものの仕様をはっきりさせましょう。 まずは入力について。 入力ファイルの「.csv」は RFC 4180 - Common Format and MIME Type for Comma-Separated Values (CSV) Files に準拠したCSVファイルですか?それとも、そのサブセットですか?もしくは、独自の形式ですか? いずれにしろ、まずはどのような入力を扱うかを決めましょう。 入力されるデータそのものについても仕様を決めないといけないでしょう。 ヘッダ行やその他無視するべき行はありますか?データの長さはどの程度までですか?書式は? 無視するべき行ではないはずなのに、...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語のint型の割り算
返信数: 4
閲覧数: 848

Re: C言語のint型の割り算

コード:

    char d;
    scanf("%s",&d);
これはダメですね。
dには1文字分の領域しか無く、それは終端のナル文字で使うため、0文字までの文字列しか入力できません。
1文字以上の文字列を入力してしまうと、範囲外への書き込みを起こし、周辺のデータの破壊に繋がります。
今回の場合、dはこのあと使われていないので、
dを経由せずに直接bが指す領域に対して文字列を入力した方がいいでしょう。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 添削お願いします
返信数: 2
閲覧数: 780

Re: 添削お願いします

0と、「下位から連続したjビットと、他に1ビット」だけが1の数のみを出力するようになっているのに対し、
110は下位0ビットと他に2ビットが1なので、出力されないですね。
どのような出力が欲しいのかわかりませんが、素直にこれではいけないのでしょうか?

コード:

for(i=0;i<(1<<h);i++){
    aa(i,h);
}
また、コードはインデントをして構造をわかりやすくした方がいいと思います。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 関数を作って欲しいです
返信数: 3
閲覧数: 855

Re: 関数を作って欲しいです

あなたが「関数を作って欲しい」ということはわかりました。 質問はありますか? 課題の丸投げは禁止です。 フォーラムルール を読み、従ってください。 ちなみに、ココナラで「プログラム 作成」で検索したらこんなのがありました。 簡単なC/C++コード/実行ファイルつくります お安く早く作ります。仕様相談、レビューもできます。 | プログラミング | ココナラ C/C++のプログラム開発を承ります 業務や学校の課題でプログラム作成が必要な方どうぞ | プログラミング | ココナラ C言語やJavaのプログラミングをお手伝いします C言語やJavaでプログラミングが必要な方ぜひご相談下さい! | プロ...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: n個のビット列の全パターンを生成するプログラム
返信数: 1
閲覧数: 736

Re: n個のビット列の全パターンを生成するプログラム

フォーラムルール より 質問は具体的にする 詳しくは「回答者が困る質問例」をご覧下さい 「うまくいきません」という質問は大抵回答に困ります。 自分は今何がしたくて どう取り組んで(作ったプログラムはどれで どのようなエラーやトラブルで困っていて 自分は何が解らないのか、知りたいのか 今のCの知識はどの程度なのか この5点をしっかりと明記して下さい。 環境に依存する場合やライブラリを使っているときは 使っているOS名・コンパイラ名・ライブラリ名も明記しましょう。 コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう。 ただし、短いビット列の生成に再帰は必要ないでしょう。 コンピ...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Dxライブラリで模様を作りたい
返信数: 4
閲覧数: 806

Re: Dxライブラリで模様を作りたい

こんなんで、どうでせう。 ダメですね。 if (a > MAX) { a = 0; } という処理だと、a = MAX の時はそのまま次のループに行き、R[a++]が範囲外へのアクセスになってしまいます。 if (a >= MAX) { a = 0; } とするべきでしょう。 もしくは、R[a++]をR[a]として、このif文の代わりに a = (a + 1) % MAX; とするか。 また、 SetDrawScreen(DX_SCREEN_BACK); をしていないのに ScreenFlip(); をしているのも、おかしいと思います。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ifかswitchか
返信数: 4
閲覧数: 1041

Re: Re:Re: ifかswitchか

出た数字をatari (-1とか?) に変える仕様だと仮定すると、以下のようにできます。 for (int r = 0; r < 5; r++) { // どの行を調べるか int bingo = 1; // その行が全部atariか? for (int c = 0; c < 5; c++) { if (b[r][c] != atari) bingo = 0; // その行にatariじゃないマスがあるか? } if (bingo) { // 全部atariだった! (atariじゃないマスが無かった!) printf("おめでとう!%d行目がビンゴです!", r); } } for (int...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでの開発について
返信数: 6
閲覧数: 1133

Re: DxLibでの開発について

ブロックの描写位置がループ変数に依存しなくなってしまいましたね。
なぜそのように変更したのでしょうか?
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ifかswitchか
返信数: 4
閲覧数: 1041

Re: ifかswitchか

この後、生成した乱数とビンゴカードの数がアタリかどうかを判定し、『アタリ』『ハズレ』と表示するソースを書きたいのですが、このときif文を繰り返しで行うのと、switch文で書くのとどちらが良いでしょうか? ifを 繰り返す のがいいでしょう。 すなわち、ビンゴカード全体について判定を行い、どれかが一致すればアタリとするのが一般的でしょう。 for (n = 0; n <= 100; n++) { x = rand() % (n + 1); printf("抽選 %2d回目:%3d", n, x); int atari = 0; /* 当たったか */ /* カード全体に対し判定を行う *? ...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでの開発について
返信数: 6
閲覧数: 1133

Re: DxLibでの開発について

エラーの原因は、初期値 PositionY = 0 ではループ条件 PositionY >= 700 が真にならないことですね。
条件は PositionY <= 700 の間違いではないでしょうか?

また、この条件を直しても、画像が2×701枚全部一気に描画され、モーションにはならないでしょう。
モーションにするには、1回描画するごとにウェイトと画面クリアを入れるといいでしょう。
(本当は描画位置を状態として管理し、1フレームごとにメインループに戻すべきですが、
この段階ではメインループが無いようなので…)
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault: 11の原因
返信数: 5
閲覧数: 1143

Re: Segmentation fault: 11の原因

fg->g[i][j]<=γ

という条件がおかしいですね。
緑を2回比較してしまっています。
正しくは

fg->b[i][j]<=γ

でしょう。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault: 11の原因
返信数: 5
閲覧数: 1143

Re: Segmentation fault: 11の原因

ループ条件のwidthとheightが逆ですね。
他の関数にも同じ間違いが見られます。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 複数の入力した整数値から最大・最小値の求め方
返信数: 1
閲覧数: 930

Re: 複数の入力した整数値から最大・最小値の求め方

maxとminは個別の入力値ではなく、最初に入力した値に初期化するといいでしょう。 #include <stdio.h> int main(void) { int data, max = 0, min = 0, is_first = 1; for(; scanf("%d", &data)==1;) { if (is_first || data > max) max = data; if (is_first || data < min) min = data; is_first = 0; } if (is_first) { puts("no input"); } else { printf("%...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 平均点の結果が0になりおかしいです。
返信数: 2
閲覧数: 943

Re: C言語 平均点の結果が0になりおかしいです。

出力指定子%fに対してint型のデータを渡しているのが間違っていますね。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 関数が機能していない
返信数: 2
閲覧数: 1013

Re: 関数が機能していない

beki関数から返した結果をmain関数側で全く使わず、投げ捨てているのが間違っています。 また、beki関数の引数numおよびansの値を使わずにローカル変数のように使っていること、 およびせっかくdoubleで計算した結果をintで返しているのは不自然に思えます。 #include <stdio.h> /* 計算結果をdoubleにし、引数numとansを削除する */ double beki ( double input, int jou ); int main(void) { double real; double result; int power; int i; printf( "...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 参照を、このときどうつかっていいのかわかりません。
返信数: 3
閲覧数: 979

Re: 参照を、このときどうつかっていいのかわかりません。

とりあえず、元のプログラムをできるだけ残して、修正。 コンパイルエラー になりました。 prog.cc: In constructor 'samp::samp()': prog.cc:12:31: error: invalid conversion from 'char' to 'char*' [-fpermissive] 12 | samp() { cout << "a"; s = '\0'; } | ^~~~ | | | char どのようにすれば、このプログラムはきちんと動くのでしょうか。 samp::sはポインタなので、文字'\0'ではなくポインタを代入するようにする sampのコピ...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 複数ある同じ条件のwhileをまとめる方法を教えてください
返信数: 1
閲覧数: 847

Re: 複数ある同じ条件のwhileをまとめる方法を教えてください

同じ条件のwhile文を3回も使うのでまとめたいのですが、 以下のように、ループを使ってまとめることができそうですね。 //***入力された文字列を文字列、1文字ずつ、10進数、16進数それぞれに変換して表示***// #include <stdio.h> #define MAX 10 //格納上限 int main(void) { const char* headers[] = {"文字", "10進数", "10進数"}; const char* formats[] = {"%c", "%d", "%x"}; char moji[MAX] ; //文字入力 printf("文字列を入力し...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 多次元配列に一次元配列を代入する
返信数: 6
閲覧数: 1137

Re: 多次元配列に一次元配列を代入する

判断、というのはif文を使えば良いのでしょうか? 効率は落ちますが、if文を使ってもいいです。 int main(void) { int b[5][5]; int a[25] = {0}; int i, j, m; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { for (m = 0; m < 25; m++) { /* i,j,mの値からして、a[m]をb[i][j]に格納するべきか? (仮で全て偽) */ if (0) { /* もし格納するべきなら、格納する */ b[i][j] = a[m]; } } } } return 0;...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 多次元配列に一次元配列を代入する
返信数: 6
閲覧数: 1137

Re: 多次元配列に一次元配列を代入する

「aの要素」を代入したい場合は int main(void) { int b[5][5]; int a[25] = {0}; int i, j; /* #2 の (1) */ for (i = 0; i < 25; i++) { /* iに基づき、a[i]をbのどこに格納するかを求める (仮で(0, 0)) */ int y = 0; int x = 0; /* そこに格納する */ b[y][x] = a[i]; } /* #2 の (2) */ for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { /* (i, j)に基づき、b[i][j]...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 多次元配列に一次元配列を代入する
返信数: 6
閲覧数: 1137

Re: 多次元配列に一次元配列を代入する

5×5の多次元配列bの各要素に、要素数25の1次元配列aを代入するにはどうしたらよいですか? 「aの要素」ではなく「a」を代入するんですよね? #include <string.h> int main(void) { int b[5][5][25]; /* 5x5の多次元配列 (各要素はint[25]) */ int a[25] = {0}; /* 要素数25の1次元配列 */ int i, j; /* bの各要素にaを代入(コピー) */ for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { memcpy(b[i][j], a, sizeo...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 変数の宣言および初期化を行う文について
返信数: 3
閲覧数: 951

Re: 変数の宣言および初期化を行う文について

IntやDoubleは独自に定義した型の可能性があり、誤りだとは限りません。
明示的に初期化されていないグローバル変数は「ゼロ」に初期化されるので、=がないからといって誤りとは限りません。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 電卓作成
返信数: 5
閲覧数: 1168

Re: 電卓作成

C言語のソースコードを教えてしまうとtxkrさんが作成する余地が無くなってしまいそうなので、 とりあえずPythonで書いてみました。 import sys def add(a, b): return a + b def mul(a, b): return a * b def add_num(n): return lambda s: s.append(n) def calc(f): def do_calc(s): s[-2] = f(s[-2], s[-1]) s.pop() return do_calc q = sys.stdin.readline().rstrip() converted_...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 開発環境を一般画面に表示する方法
返信数: 8
閲覧数: 1410

Re: 開発環境を一般画面に表示する方法

画像はユーザー登録してログインしていただければ、添付ファイルの所から貼れるはずですよ。
新しいスレッドを立てても画像が貼れるかは変わらず、続きの話なのにスレッドが分割される方が有害でしょう。
tesuto-20201019.png
てすと
tesuto-20201019.png (4.14 KiB) 閲覧数: 1175 回
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 列挙体およびバブルソートに関する質問
返信数: 4
閲覧数: 1097

Re: 列挙体およびバブルソートに関する質問

JJJuto さんが書きました:
3ヶ月前
ただ、ソース後、dayの方が数字で表示されます。できれば、SUN,MON・・・といったように文字で表示したいのですが、どうすれば良いでしょうか・・・?
ソート前の表示と同様に、値で分岐して対応する文字を表示すれば良いと思います。
同じ長い処理を複数回書くのはあまり良くないので、関数化するのも良いでしょう。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: プログラミングCでエラーが出てしまいます。
返信数: 1
閲覧数: 938

Re: プログラミングCでエラーが出てしまいます。

未定義のsizeが使われているというメッセージですね。
sizeのかわりにkosuを使うべきであうように思えます。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 列挙体およびバブルソートに関する質問
返信数: 4
閲覧数: 1097

Re: 列挙体およびバブルソートに関する質問

まず、コードタグのスペルが違います。 JJJutoさんはco rd と書いていますが、正しくはco de です。 次に、必要なヘッダのインクルードや、構造体、定数の定義が無いのが間違っています。 再現可能な短いサンプルコード を提示していただくと、答えやすくなります。 最後に、配列の要素数の取得方法が違います。 配列の要素数は配列全体のサイズを配列の1要素のサイズで割ることで得られますが、 JJJutoさんのコード int i, j, tmp, changeday, a = sizeof(week[7].day) / sizeof(week[0].day); int n,m,temp, cha...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 再投稿 エラー C4700 が出てしまいます
返信数: 4
閲覧数: 1121

Re: 再投稿 エラー C4700 が出てしまいます

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
Hyoka さんが書きました:
3ヶ月前
どのようにすれば、エラーがでずにこのよう形で実行できるのでしょうか?
ThreadFunc関数だけを見た時にgameの初期値がわからないため、
初期値によってはplayerが初期化されずに使用されることがある、というメッセージですね。
ループの前にplayerを適当な値で初期化するようにするといいでしょう。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 do~while文とwhile文
返信数: 2
閲覧数: 1153

Re: C言語 do~while文とwhile文

scanf関数に渡す書式指定文字列中の空白は、
「次の空白文字でない文字の直前まで読み飛ばす」という意味になります。
そのため、空白文字でない文字が入力されるまで入力を要求し続けることになります。
この空白を削除することで、動作を改善できるでしょう。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C 大学の課題です。助けてください!
返信数: 8
閲覧数: 1672

Re: C 大学の課題です。助けてください!

あたっしゅ さんが書きました:
3ヶ月前
> 1 行の長さに上限を勝手に設けてはいけなく,メモリ を動的に確保してはいけないとする.

この条件では、作成不可能じゃ...コンピュータ通訳で、意味が逆になったんでしょうか ?
先頭のK文字と最後のK文字だけを保持しておけばいいので、作成不可能ではないと思います。
再帰だと末尾再帰最適化がされる保証が無く、スタックオーバーフローが怖いので、
仕方がないからsetjmp/longjmpを使うのが吉…ですかねえ…?
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C 大学の課題です。助けてください!
返信数: 8
閲覧数: 1672

Re: C 大学の課題です。助けてください!

課題の丸投げは禁止です。 フォーラムルール を読み、従ってください。 質問は具体的にする 詳しくは「回答者が困る質問例」をご覧下さい 「うまくいきません」という質問は大抵回答に困ります。 自分は今何がしたくて どう取り組んで(作ったプログラムはどれで どのようなエラーやトラブルで困っていて 自分は何が解らないのか、知りたいのか 今のCの知識はどの程度なのか この5点をしっかりと明記して下さい。 環境に依存する場合やライブラリを使っているときは 使っているOS名・コンパイラ名・ライブラリ名も明記しましょう。 コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう。 宿題の質問は O...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: クラスを使ったメニュー処理
返信数: 3
閲覧数: 1383

Re: クラスを使ったメニュー処理

-842150451は2の補数として16進数にすると0xCDCDCDCDとなります。 これはVisual C++のデバッグモードでは「newなどで確保されたが、まだ初期化されていない領域」を表します。 実際、コードを見ると、Data::outputではnewで確保した配列のデータを明示的に初期化せずに出力していますね。 この配列の要素であるクラスMonsterのメンバはint型であり、コンストラクタやメンバの宣言に初期化はありません。 今回のnewでは、初期化用のデータが指定されていないので、確保された領域はdefault-initializeされます。 (N3337 5.3.4 Newの15...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: クラスを使ったメニュー処理
返信数: 3
閲覧数: 1383

Re: クラスを使ったメニュー処理

C++のenumの値は明示的に指定しないと0から始まるので、 mode = 0のときwhile文の条件の mode < MODE_FINISH || mode >= MODE_MAX すなわち mode < 0 || mode >= 5 は偽になり、入力を受け付けずにそのままswitch文へ行き、 case MODE_FINISH:を実行して終了することになります。 modeを0ではなく-1やMODE_MAXなどwhile文の条件を真にする値で初期化すると改善するでしょう。 もしくは、while文のかわりにdo-while文を使うようにしてもいいでしょう。 ちなみに、このコードではData::...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: OpenGL ポリゴンにテクスチャを貼り付けたいが上手く行かない
返信数: 1
閲覧数: 1182

Re: OpenGL ポリゴンにテクスチャを貼り付けたいが上手く行かない

OpenGLは詳しくないですが、ざっと見た感じだと これから使うはずのテクスチャをいきなりglDeleteTexturesで消してしまっている テクスチャを参照せずに固定の色を返すフラグメントシェーダを使用している というのがまずそうだと思います。 【参考】 glDeleteTextures は、紐付けを解除するらしいです。 If a texture that is currently bound is deleted, the binding reverts to 0 (the default texture). 一方、 glDeleteShader は、紐付けを解除しないらしいです。 If...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: パソコン甲子園について
返信数: 5
閲覧数: 1806

Re: パソコン甲子園について

この問題の場合は、2次元配列の方がいいだろ。 この問題で入力される座標の範囲はx, yともに-10**6~10**6なので、 この範囲のタイルを全て2次元配列で用意すると、 1個のタイルを1バイトで表現すれば約4TBになってしまいます。 1個のタイルを2ビットで表現しても、約1TBです。 これは現在一般的なコンピュータの主記憶で扱うには大きすぎるでしょう。 また、この巨大な配列の要素を埋めるのにも、現在一般的なコンピュータでは長時間かかることになるでしょう。 従って、わざわざ指定の場所に到達するまでの全タイルの情報を持つのではなく、 塗った範囲の四隅の座標だけを管理する方がいいでしょう。 (...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: パソコン甲子園について
返信数: 5
閲覧数: 1806

Re: パソコン甲子園について

四隅の座標はxとyに分け、タイル1個分を1とした値で複数のint型の変数で保持するといいでしょう。

指定の位置が次に色を塗る領域に入っているかは、次に色を塗る領域を求めた後、
「次に色を塗る領域の東の端のx座標 ≦ 指定の位置のx座標」かつ
「指定の位置のx座標 ≦ 次に色を塗る領域の西の端のx座標」かつ
「次に色を塗る領域の南の端のy座標 ≦ 指定の位置のy座標」かつ
「指定の位置のy座標 ≦ 次に色を塗る領域の北の端のy座標」
かで判定するといいでしょう。 (条件を全て満たす ⇔ 入っている)
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: パソコン甲子園について
返信数: 5
閲覧数: 1806

Re: パソコン甲子園について

過去問|パソコン甲子園2019
に載っている予選の問題ですか?
そうだとしたら、色が塗られている領域は常に長方形になるので四隅の座標を保持するだけで管理でき、
次に色を塗る領域もそこから簡単にわかるので、
指定の位置が次に色を塗る領域に入っているかを判定し、入っていればその色を出力するようにすればよさそうですね。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: URLがUTF8でどうしたらいいのかわからない
返信数: 4
閲覧数: 1587

Re: URLがUTF8でどうしたらいいのかわからない

自作関数とのことなので、通信のログを取るなどしてデバッグをするのがいいと思います。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: エラーの原因がわからない
返信数: 10
閲覧数: 2041

Re: エラーの原因がわからない

エラーの原因は、プログラムの実行をmain関数から始めることになっているのに、そのmain関数が無いことですね。 あと、ファイルの先頭に GameMsg002()など、まだ定義されていない 関数のプロトタイプ宣言があるようですが、 コンパイラから見たら、 「は?あるって書いてあったのに GameMsg002関数ねぇじゃん❗」って なるので、 コンパイラから見たら、宣言がある時点でその関数は「ある」ということになります。 すなわち、関数を呼び出すコードがあるとき、引数や戻り値をどう扱うかがわかります。 コンパイルの段階ではそれで処理に十分であり、関数の定義は必要ありません。 (このため、関数の宣...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ 画面に敵を1体しか表示できない
返信数: 11
閲覧数: 9695

Re: DXライブラリ 画面に敵を1体しか表示できない

弾の移動処理においてEbulletCounter[j] = 0;を実行しているが、
ここでのjは敵ではなく敵の弾の位置なので、関係ない敵のデータを書き換えてしまうことに繋がり、不適切です。
EbulletCounter[j] = 0;は弾を出す処理の方で行うべきでしょう。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ 画面に敵を1体しか表示できない
返信数: 11
閲覧数: 9695

Re: DXライブラリ 画面に敵を1体しか表示できない

くろのま さんが書きました:
5ヶ月前
これはどうですか!直しました!
ブロックと最初と最後でインデントの深さが違う以外は、問題なさそうだと思います。
くろのま さんが書きました:
5ヶ月前
敵の弾はこれであっていますか?自分が動かしたいようには動いています。
ここには敵本体の処理しか書かれていないようなので、「敵の弾」としては論外ですね。
書かれている処理については、
敵を出現させる時のループの上限がENEMYではなくマジックナンバーの3になっているのが気になりますが、
今のところ出現させる敵は3体のみで、かつENEMYは3以上なので、異常動作の原因にはならないでしょう。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ 画面に敵を1体しか表示できない
返信数: 11
閲覧数: 9695

Re: DXライブラリ 画面に敵を1体しか表示できない

敵が画面上に現れてから60フレームごとに1発弾を撃つようにしたいです。弾を出したらカウンターを0にすればいけるかなと思ったのですが、全然できませんね… カウンターを敵ごとに用意するといいかもしれません。 コードを下のように変更してみたら、とりあえず出てきた敵は倒せるようになったのですが、これであっているでしょうか? 間違っています。 外側のループの継続条件が i < SHOT+j となっており、 jは内側のループを抜けるときにはSHOTになっているので、iは SHOT+SHOT-1 までループしてしまいます。 一方、bulletFlagなど弾に関する配列の要素数はSHOTしか無いため、範囲外...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ 画面に敵を1体しか表示できない
返信数: 11
閲覧数: 9695

Re: DXライブラリ 画面に敵を1体しか表示できない

配列上で同じ位置にある敵と弾しか見ていないというのがよく分かりません。詳しく教えていただけないでしょうか? 複数あるもの同士の通常の当たり判定では、二重のループを用い、 存在しているものの組み合わせ全てについて判定を行います。 mixcpp-20965-1-20200821.png 一方、くろのまさんのコードでは、ループを一重しか用いておらず、限られた組み合わせしか判定をしていません。 mixcpp-20965-2-20200821.png このため、判定しない組み合わせでは判定が行われず、「当たらない」ということになります。 それと、今まで更新処理はシーン変更のみと思い込んでいたのですが、...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ 画面に敵を1体しか表示できない
返信数: 11
閲覧数: 9695

Re: DXライブラリ 画面に敵を1体しか表示できない

・敵を出現させる処理において、フラグを確認していないため、常に最初の敵を上書きしてしまう
・敵や敵の弾を動かす処理において、余計なbreak;があるため、最初の有効な敵しか処理されない
・自機の弾と敵の当たり判定において、敵のフラグを確認していない上、
 配列上で同じ位置にある敵と弾しか見ていないため、不適切な動作になる

といった問題がありそうです。
また、Game_Update関数があるのに、Game_Draw関数で大量の更新処理をしているのも、よくないと思います。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 大学の課題
返信数: 2
閲覧数: 1773

Re: 大学の課題

詳しくみてはいませんが、とりあえずざっと見たところ、以下の怪しい点がありました。 ●13行目に不正な文字列 */ があり、コンパイルエラーになる ●learn_w関数の for (p = 1; p < PatternNo; p++) { w[i][j] = pattern[p][i] * pattern[p][j]; } という部分は、代入は前の値を上書きするため実質 w[i][j] = pattern[PatternNo - 1][i] * pattern[PatternNo - 1][j]; と同じ意味であり、ループの意味がない (和を求めるなどの計算をしたかったのではないか?) ●inp...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 2DRPGゲームにおける、巡回中に視線内の主人公を追う敵キャラの作成
返信数: 3
閲覧数: 1561

Re: 2DRPGゲームにおける、巡回中に視線内の主人公を追う敵キャラの作成

オフトピック
あたっしゅ さんが書きました:
5ヶ月前
インデントがなくなってしまったソースコードを[ code ][ /code ]で囲っても、しょうがないだろう。
最初の投稿の引用画面でもインデントが無いため、
「なくなってしまった」ではなくて最初からインデントが無い可能性も考えられます。
また、今回は対象が無いようですが、codeタグには[​i]などがBBCodeのタグとして処理されるのを
防ぐ効果もあるため、しょうがないとは限らないでしょう。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: fscanfの挙動
返信数: 3
閲覧数: 1549

Re: fscanfの挙動

これはfscanfが問題なのではなく、 その次のbubbleSort関数の処理にかなり長時間(実験はしていないが、1時間くらい~?)かかるだけだと思います。 topコマンドなどでCPU使用率をチェックし、CPU使用率が下がるのを待ってから入力をしてみましょう。 なお、普通の バブルソート はO(n^2)であり、10000件であれば数秒~数十秒程度でできるはずですが、 ここで使われているbubbleSort関数はO(n^3)なので、 nが大きくなっていくに従いバブルソートよりさらにどんどん処理時間が伸びます。 また、このコードには他にも ・binary_search関数の引数imaxに与える値が...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 4
閲覧数: 869

Re: 課題

似た質問がありました。
同じ人のマルチポストだとは断定はできませんが…

C言語 プログラミングy = sin(x)のグラフを 0≦x≦2π の範囲について π/10... - Yahoo!知恵袋
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 複数個の英単語を順次読みこんで、頭文字の出現回数が多い順にデータを出力するプログラムを作成したいです
返信数: 2
閲覧数: 1550

Re: 複数個の英単語を順次読みこんで、頭文字の出現回数が多い順にデータを出力するプログラムを作成したいです

作成したいのであれば、作成すればいいでしょう。
希望だけで質問が書かれていないようですが、何をお願いするのですか?
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: シフト演算のプログラムについての質問
返信数: 4
閲覧数: 1822

Re: シフト演算のプログラムについての質問

オフトピック
usao さんが書きました:
5ヶ月前
> C言語2級レベル程度の...

C言語って級とか段とか(?)あるんすか?
これですか、わかりません。
試験内容 - 検定試験について - C言語プログラミング能力認定試験│資格検定のサーティファイ│あなたのスキルアップを応援します|
※現在Firefoxでは閲覧できないようです。Google Chromeなら警告は出るものの閲覧できました。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: シフト演算のプログラムについての質問
返信数: 4
閲覧数: 1822

Re: シフト演算のプログラムについての質問

・一周したら変わらないので、一周以内のシフト幅に補正する
・シフト幅が0なら、そのまま出力する
・そうでないなら、左に行った分を右に入れる

コード:

unsigned short int LeftRotate(unsigned short int data, int bit)
{
	int size = sizeof(unsigned short) * 8;
	bit %= size;
	if (bit < 0) bit += size;
	if (bit == 0) return data;
	return (data << bit) | (data >> (size - bit));
}
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 動的に構造体配列をとりたい C言語
返信数: 3
閲覧数: 1687

Re: 動的に構造体配列をとりたい C言語

pDataには1要素分しか確保されていないバッファへのポインタ
(またはmallocが失敗した場合NULL)が代入されているのに、
存在しない2~10要素目へのアクセスがあるため、未定義動作になります。
範囲外へのアクセスが具体的にどうして落ちるのに繋がるかは環境によりますが、
・ヒープの管理情報を破壊し、malloc()やfree()で不都合が出た
・OSの管理レベルで確保されていない場所にアクセスした
などが考えられます。
freeのやり方は、ループ内で10回mallocさせているのに対し、
最後の1回で確保したバッファしかfreeしていないので、正しくないです。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 途中で落ちる理由が知りたいです。
返信数: 2
閲覧数: 1623

Re: 途中で落ちる理由が知りたいです。

pDataには1要素分しか確保されていないバッファへのポインタ
(またはmallocが失敗した場合NULL)が代入されているのに、
存在しない2~10要素目へのアクセスがあるため、未定義動作になります。
範囲外へのアクセスが具体的にどうして落ちるのに繋がるかは環境によりますが、
・ヒープの管理情報を破壊し、malloc()やfree()で不都合が出た
・OSの管理レベルで確保されていない場所にアクセスした
・AddressSanitizerなどの範囲外へのアクセスを検出する仕組みに引っかかった
などが考えられます。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: c++ マウスを使ったゲーム
返信数: 7
閲覧数: 2173

Re: c++ マウスを使ったゲーム

試しにブロック崩しを作ろうとしたのですが、バーを動かすところで行き詰まってしまいました… 何がわからないのかわからないので、とりあえず作ってみました。 DXライブラリ使用版 #include <DxLib.h> const int WINDOW_WIDTH = 640; const int WINDOW_HEIGHT = 480; int WINAPI WinMain(HINSTANCE /* hInstance */, HINSTANCE /* hPrevInstance */, LPSTR /* lpCmdLine */, int /* nCmdShow */) { // DXライブラリ...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: キャラクタ移動制御とキー入力
返信数: 2
閲覧数: 1737

Re: キャラクタ移動制御とキー入力

キーボードの仕様の可能性があります。
もしそうであれば、「Nキーロールオーバー」のキーボードにすると改善するでしょう。
まずは移動処理を切り離して、キー入力がうまく取れているかだけをチェックしましょう。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Mac Xcordでの画面のクリア
返信数: 3
閲覧数: 1748

Re: Mac Xcordでの画面のクリア

system()はstdlib.hにある関数なので、コードの先頭に

コード:

#include <stdlib.h>
を追加してください。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: c++ 玉の反射について
返信数: 10
閲覧数: 2281

Re: c++ 玉の反射について

calbee さんが書きました:
6ヶ月前
r=半径
((x-x1)^2 + (y-y1)^2 <= (r+r1)^2)
という判定法を見つけたのですが、判定範囲が広くなってしまい、何故かできないです…
そのコードは見せていただけないですか?
ちなみに、C++のプリミティブ型では「^」は累乗ではなくxorの演算子です。
calbee さんが書きました:
6ヶ月前
問題ないはずですよね…?
これで問題ないかはわかりません。
・calbeeさんの考えている世界で「1」がどの程度の大きさなのかわからないので、
 当たり判定の範囲が適切かわかりません。
・各識別子の宣言が書かれていないので、型が適切かわかりません。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ニュートン法(Newton’s Method)
返信数: 2
閲覧数: 1744

Re: ニュートン法(Newton’s Method)

・標準では使えない全角スペースがコードに含まれている
・入力を受けるのはnumなのに、式中ではAを使おうとしている
・Xを普通の変数として使うのか配列として使うのかが統一されていない
という問題があります。
全角スペースを半角スペースに置換し、変数の名前や使い方を統一しましょう。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: c++ ドット グラデーション
返信数: 5
閲覧数: 1976

Re: c++ ドット グラデーション

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 何故これで色が薄まるのか分からないです… 間違っているかはともかく、今のコードを見ると、 rについては最初から255なので次の値も255なので変わらず、 g, bについては最初は255より小さい値なので255になるまで1ずつ増えていくので、 赤だけが目立っている状態(R,G,B)=(255,0,0)から白(R,G,B)=(255,255,255)に近づいていくので、 これが「色が薄くなる」というように見...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++での迷路生成プログラムについて
返信数: 4
閲覧数: 2020

Re: C++での迷路生成プログラムについて

オフトピック
やはり[​/i]がなくても[​i]が斜体タグと認識される仕様は実害が発生する悪い仕様だ。
早く撤廃されてほしいなあ。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++での迷路生成プログラムについて
返信数: 4
閲覧数: 2020

Re: C++での迷路生成プログラムについて

1. MazeMap::MazeMap(int w, int h) { width = 2 * w + 1; height = 2 * h + 1; data = new char* [width]; for (int i = 0; i < width; ++i) { data = new char[height]; } } MazeMap::~MazeMap() { for (int i = 0; i < width; ++i) { delete[] data; } delete[] data; } は MazeMap::MazeMap(int w, int h) { width = 2 ...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: sinの振幅によってLED点灯
返信数: 4
閲覧数: 1946

Re: sinの振幅によってLED点灯

オフトピック
こーたろー さんが書きました:
6ヶ月前
SINのハイレクの件名で教えていただいた
sinの配列のことでしょうか?
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: sinの振幅によってLED点灯
返信数: 4
閲覧数: 1946

Re: sinの振幅によってLED点灯

コード:

0.8<=c[i]<1.0
という条件式は、範囲の判定ではなく、

コード:

0.8<=c[i]
の値(真なら1、偽なら0)が

コード:

1.0
より小さいか、という判定になります。
範囲の判定をしたければ、

コード:

0.8<=c[i] && c[i]<1.0
のようにするべきでしょう。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: sinの振幅によってLED点灯
返信数: 4
閲覧数: 1946

Re: sinの振幅によってLED点灯

まず、

コード:

#define N(99)
は名前と値の間に空白を入れて

コード:

#define N (99)
としたほうがよさそうな気がします。

また、2個目のループでは、iの値がNを超えたら0に戻す処理を入れないと、範囲外に行ってしまって危なそうです。

ちなみに、LED_D*_Onには()をつけて関数を呼んでいるようなのに、
LED_D*_Offには()をつけていないのはなぜでしょうか?
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: sinの配列
返信数: 3
閲覧数: 1816

Re: sinの配列

まず致命的な点として、現状では配列a, b, cはN要素(添字は0~N-1)しか無いので、 a[N], b[N], c[N]にアクセスしてはいけません。 さらに、浮動小数点演算は誤差を含むので、 ループは整数で回し、最大値と現在の値の比を用いて計算する方がいいでしょう。 #include<stdio.h> #include<math.h> #define N (99) void main(void) { int i = 0; double a[N + 1], b[N + 1], c[N + 1], pi, t; pi = 4 * atan(1.0); printf(" 時間     ωt   ...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 変数を使ってy座標を指定しその座標を習得する方法について
返信数: 1
閲覧数: 1683

Re: 変数を使ってy座標を指定しその座標を習得する方法について

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 貼られているコードは、「...」をコメントアウトし、先頭に typedef struct task { int pos[1024]; } TASK; int SOZ_Mouse_Button(int a) { return a; } TASK* TASK_start_GRP() { static TASK a; return &a; } int X, Y, num, save_id, mouse_x, ...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: コンパイルエラーの対処法
返信数: 4
閲覧数: 2133

Re: コンパイルエラーの対処法

警告を無視するか、scanfの戻り値を投げ捨てずチェックするようにするといいでしょう。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: コンパイルエラーの対処法
返信数: 4
閲覧数: 2133

Re: コンパイルエラーの対処法

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 このプログラムをコンパイルすると次のエラーがでて対処法がわかりません ここには警告しか書かれていないようですが、どのようなエラーが出るのですか? ./Main.c:9:13: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[(sizetype)(a)]’ [-Wformat...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 1万人分の身長データを小さい順に並べ替える方法
返信数: 3
閲覧数: 1985

Re: 1万人分の身長データを小さい順に並べ替える方法

一万人分の身長データを小さい順に並べ替える方法がわかりません。 並べ替え自体は、今のコードの処理対象の数を変えるだけでできると思います。 結果の出力の位置も変えたほうがいいかもしれません。 1万人なのでファイル処理を使います。 「ファイル処理」って、具体的にどのような処理ですか? 入力だけですか?出力もですか? ファイルのフォーマットはどのような感じですか?テキストですか?バイナリですか? ファイルは自前で開きますか?それとも(リダイレクトで)シェルに任せますか? それに合わせてscanf、fscanf、fread、printf、fprintf、fwriteなど、 適切な関数を使って読み(書...

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