検索結果 149 件

by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: アクションゲームのジャンプについて
返信数: 6
閲覧数: 1075

Re: アクションゲームのジャンプについて

参照先のコードを貼っておきます。 y_temp = Mario.y; Mario.y += (Mario.y - Mario.y_prev) + F; Mario.y_prev = y_temp; Fはジャンプしたとき10で空中では-1とするようです。 このコードは今の位置と前回に位置の差(つまり、その速度)に力を加える(加速・減速)ことにより 速度を求め、今の位置に加える(速度による移動を行う)ことによって次の位置を求めるものです。 Mario.y=Mario.y_prev=0で処理を開始すると、確かに結果は[0,10,19, 27, 34, 40, 45,・・・となる はずですが、Mari...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: staticメンバ変数を継承して利用する
返信数: 2
閲覧数: 1122

Re: staticメンバ変数を継承して利用する

件名のとおりstaticメンバ変数を継承して利用するときで、確認したいです とあるとき Loop関数で g_mvTask[0] で SetValueを使って CSystem::m_iValue の値を変更したとき g_mvTask[1].m_iValue g_mvTask[2].m_iValue g_mvTask[3].m_iValue g_mvTask[4].m_iValue の値も全部変更になるんですが、これでよかったでしょうか? 確認はしたのですが、偶然だったら怖いのでこれで合っているかどうかを聞きたいです 使い方としては タスク1、タスク2、タスク3、タスク4、タスク5 で同じ変数を...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: lengthの使い方(初心者です)
返信数: 7
閲覧数: 1880

Re: lengthの使い方(初心者です)

ジョぱん さんが書きました:ありがとうございます。
配列の要素数、長さ、を表現できるプロパティはないのでしょうか?あったら教えてください。
うーん、「lengthなんていう名前のプロパティは有りません。」でプロパティというものが有ると勘違いさせてしまいましたかね。

コンパイル時に決定している配列の長さを求めるにはsizeof演算子を使って全体のバイト長とその配列の要素のバイト長を求めて計算します。
size_t length = sizeof(k)/sizeof(k[0]);
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C言語について
返信数: 4
閲覧数: 277

Re: C言語について

今、先週のテストの復習をしています。 1if文、for文はわかるんですが、do while文はいまいちわかりません。 2構造体は全く分りませんので、今復習しながらしていますが・・・ 3ビット演算の話だとは、理解できていますが、&=がよくわかりません。ビット演算は2進法以外でも使えるのですか? do while文の構造は do statement while (expression); まず、statement を実行し、その後 expression を評価し、その評価結果が真である場合、 do に戻る(つまり statemet を実行して、expressionを評価して、,,,の繰り返し)。...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: lengthの使い方(初心者です)
返信数: 7
閲覧数: 1880

Re: lengthの使い方(初心者です)

int k[12]にはlengthなんていう名前のプロパティは有りません。
というか、基本型に".xxxx"という表現でアクセスできるようなプログラム言語要素は存在しません。

他言語の知識でプログラムしようとしているようですが、c/c++言語の基本的なところから学習する必要がありそうです。
(普通の初心者はいきなり k.length なんて入力しないと思いますが。)
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 放物線
返信数: 5
閲覧数: 1196

Re: 放物線

時間と移動量との関係式を見つけてみましょう。 # 放物線にはならないと思うけど。 確かに放物線にはなりませんねぇ。 移動量|  0 5 4  3  2  1  -1  -2  -3 -4  -5 まず、移動量は次の座標との差だから、先頭の0は無視します(と言うか、移動量は間に書くべき) そうするとこの移動量はその間の平均速度ということになります。 そして、その平均速度の差を求めると加速度が求まります。 で、加速度を求めると -1 -1 -1 -1 -2 -1 -1 -1 -1 となって、一定になっていないことが分かります。 これは「一定の加速度(普通は重力)」の元で運動する物体の動きである放...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 野球の対戦表について
返信数: 5
閲覧数: 746

Re: 野球の対戦表について

data .win+data .loseが0になり0割が発生してしまうということは分かったのですが、 どのように書けば良いのか分かりません。 以下の指摘をよく考えて見ましょう。 2 勝率の計算を求める場所が違う。 勝率は各チームの勝敗の合計数から求めます。 今の位置では各チームの勝敗の合計を求める途中結果を使用しています。 で、その途中結果が0勝0負から始めるのでゼロ割が発生してしまうのです。 勝率の計算を勝敗の合計数を求め終わった後に移動しましょう。 具体的には for(i=0;i<6;i++){ fscanf(fp,"%s",&data[i].team); for(j=0;j<6;j++...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 「キャラを4方向に動かす」プログラムについて
返信数: 2
閲覧数: 501

Re: 「キャラを4方向に動かす」プログラムについて

上記コードの26行目からのif文についてなんですが、 if(ch.x%32==0 && ch.y%32==0) の条件を満たしていて、何も入力がない場合はwalkking_flagには0が入りますよね? それは37行目の処理ですね。 何故上ボタンを押した時点で warking_flagに1が代入されるんでしょうか。 ch.mukiに0が代入されるのはわかりますが、なぜ27行目のwarking_flag = 1が適用されるのかがわかりません。 ボタンを押した時点でwarking_flagに1が代入されるのではありません。 ボタンが押されたかどうかを判定する前(27行目)に1を代入しているのです...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: printf関数の表示が
返信数: 3
閲覧数: 680

Re: printf関数の表示が

// time_tは、long型なので%ldとなることに注意! これが間違いですね。 VC++2008なら time_t にマウスカーソルをもっていって右クリック、「定義へ移動」で time_t の typedef に飛びます。 多分 typedef __time64_t time_t; /* time value */ の文にジャンプします。 さらに、__time64_t は typedef __int64 __time64_t; /* 64-bit time value */ time_t を long で使いたい場合は #define _USE_32BIT_TIME_T とすればよさそ...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 累乗の計算です
返信数: 6
閲覧数: 3865

Re: C++ 累乗の計算です

このエラーをよく読めば分かります。 > c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(535): または 'float pow(float,int)' > c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(497): または 'double pow(double,int)' > 引数リスト '(int, int)' を一致させようとしているとき この文を翻訳するすると、 「power関数の引数は float 型と...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 累乗の計算です
返信数: 6
閲覧数: 3865

Re: C++ 累乗の計算です

コメントにある mega*2^20/960/3600 の 2^20 の部分は 2 の 20乗と言う意味ですが、
c/c++の ^ は別の意味になります。 2^20 の部分を正しい値に直せばエラーはなくなります。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列を戻り値にしたい
返信数: 14
閲覧数: 6000

Re: 二次元配列を戻り値にしたい

実際に二次元配列を戻り値にせず、要素を標準出力に出力する方法を書いてみました。 #include <iostream> using namespace std; class CSample { static const size_t array_size_1 = 3; static const size_t array_size_2 = 5; private: int array_[array_size_1][array_size_2]; public: CSample() { for (size_t i = 0; i < array_size_1; ++i) for (size_t j = ...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++ if文の質問です。 
返信数: 4
閲覧数: 988

Re: C++ if文の質問です。 

ありがとうございます。解決いたしました。 フォーラムも拝見させていただきましたので以後はそれに従い、投稿いたします。 それならば、「解決した方法を明記して下さい。」とあったはずですが。 ついでに解決したら「解決」チェックボックスをチェックしておいていただけるとよろしいかと。 さて、本題。 私の趣味からすると if( (0<=seitou)&&(seitou<60) ) とすると条件範囲が分かりやすくて好きですね(強要する気はありません)。 も範囲が分かりやすく、読みやすいのですが、それぞれの範囲が連続しているので、こんな書き方もあります。 #include <iostream> char l...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列を戻り値にしたい
返信数: 14
閲覧数: 6000

Re: 二次元配列を戻り値にしたい

ほぼ解決しているようですが、 クラスのメンバ変数のint型二次元配列を戻り値にして外部からもたまに見れるようにしたいです。 なら、「外部から」「たまに見」る機能(関数)を friend にするのが一般的ではないでしょうか? そうでないとせっかくカプセル化した内部情報を外部にさらすことになります。私なら、このような関数はつくろうとは思いません。 逆にメンバー変数を外部にさらす必要があるということは、そのクラスでやりたいことが明確に定義できていないということではないでしょうか? もう一度設計に立ち戻ることをお勧めいたします。 たとえば今回の例では、PrintArray をメンバー関数にしてしまえば...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、行列の積と行列式を求めるプログラムについての質問です。
返信数: 8
閲覧数: 6099

Re: C言語、行列の積と行列式を求めるプログラムについての質問です。

行列式も関数detaminantで表したいのですが、どのようにすればいいでしょうか? int det=0.0; det=mc[0][0]*mc[1][1]*mc[2][2]; det+=mc[1][0]*mc[2][1]*mc[0][2]; det+=mc[2][0]*mc[0][1]*mc[1][2]; det-=mc[2][0]*mc[1][1]*mc[0][2]; det-=mc[1][0]*mc[0][1]*mc[2][2]; det-=mc[0][0]*mc[2][1]*mc[1][2]; ここまで出来ているのですから、これを関数化すればよいだけではないのですか?何かそれでは不満が...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 文字入力と配列についてです。(C++)
返信数: 36
閲覧数: 2122

Re: 文字入力と配列についてです。(C++)

kaka さんが書きました:上記のプログラムにおいて、文字でなく文字列にして実行した場合、文字列を入力し改行を押しても何も起こらなくなるのはなぜなのでしょうか?(?ω?)
申し訳有りません。なにを言っているのかさっぱり分かりません。
まず、上記のプログラムとはどれのことでしょうか?
「文字でなく文字列にして実行」とはどういうことでしょうか?
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 条件分岐を使用しない数値の大小比較
返信数: 6
閲覧数: 3160

Re: 条件分岐を使用しない数値の大小比較

条件分岐を使わないという制約条件がよく分からないのですが、大きいほうを返す関数っては、普通は

コード:

int max(int a, int b)
{
    return a > b ? a : b;
}
とします(というか、このようにマクロで定義されていたりテンプレート関数で定義されている)。
3項演算子は条件分岐なのかなぁ?
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 巨大な数の計算
返信数: 6
閲覧数: 735

Re: 巨大な数の計算

long intは32ビットです。
long long や __int64 を使ってみてください。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C(++)言語のマクロにスコアを付けたい
返信数: 6
閲覧数: 343

Re: C(++)言語のマクロにスコアを付けたい

#define はプリプロセッサで処理して文字列の置き換えを行うものなのでスコープは 限定されないでしょう。単に出現順に処理されるだけです。 C++ではマクロはあまり推奨されていません。 マクロは単に文字列の置き換えなので型に対する情報が欠如しているからです。 定数の宣言は const type_name variable_name = value; // 定数の宣言 とし、max(),min()のような関数の形になるマクロは関数でインラインで記述するほうがよいでしょう。 実際にmix(), min()はc++では template <class T> inline const T& max(...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 文字入力と配列についてです。(C++)
返信数: 36
閲覧数: 2122

Re: 文字入力と配列についてです。(C++)

kaka さんが書きました:では、どのようにしたら、配列と文字を比較(array == '文字')できるのでしょうか?(><;)

正確には配列の要素と文字の比較ですね。

この配列の要素は文字列ですが、なぜ、文字列と文字を比較しようとしているのでしょうか?
概念の違うものなので比較しようが有りません。(例えとしては少しおかしいかも知れませんが、身長と体重と比べているようなものです。)
"A"と'A'は同じように見えるかも知れませんが異なるものです。
kakaさんは、まず、この違いを認識することが必要でしょう。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の表示がおかしくなる
返信数: 10
閲覧数: 509

Re: 画像の表示がおかしくなる

でもということは最初の初期化部分の235行目~のところが間違っているということになるんでしょうか? さっき間違っていたところは削除したので他に間違っていそうな初期化部分はないのですが・・・・ いや、だから、初期化云々は関係無くて、 483行目のiはprintfで調べたところ10になっていました に対して、 tama[10]と宣言したなら、tama[0]からtama[9]までしかないよね。 と回答されているでしょ。 つまり483行目でi=10でアクセスしているのは明らかにおかしいんです。 色々いじっていたら解決しました。 これは 非常に危険 です。この類の問題(無効な領域への書き込み)はいろい...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の表示がおかしくなる
返信数: 10
閲覧数: 509

Re: 画像の表示がおかしくなる

後デバックモードでEscキーで終了すると Run-Time Check Failure #2 - Stack around the variable 'tama' was corrupted. というエラーが出るのですが翻訳もしてみたのですがよくわからない状態です このエラーメッセージをそのまま翻訳すれば 「変数'tama'の周りでスタックが壊れています。」 原因としてはポインタの計算間違いや配列の添え字を間違えた結果、配列の範囲外のデータ(そこには別のデータがある)を書き換えてしまうことがあげられます。 そして tama[10]と宣言したなら、tama[0]からtama[9]までしかないよ...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 成績処理のプログラムで質問です
返信数: 14
閲覧数: 3327

Re: 成績処理のプログラムで質問です

あと、「各科目と総得点に関する平均と標準偏差を出力」とあるので、少なくとも
英語の平均、数学の平均、国語の平均、(総得点の平均は前3つの平均を合計で可能)
英語の標準偏差、数学の標準偏差、国語の標準偏差、総得点の標準偏差
の7つの変数が必要ですが、それはどの変数に対応していますか?
見たところ、Ave や Dev という変数しかないようですが。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 成績処理のプログラムで質問です
返信数: 14
閲覧数: 3327

Re: 成績処理のプログラムで質問です

紫苑 さんが書きました:

コード:

 Ave = 0.0;
  for(k=0; k<num; ++k){
   Ave += (student[k].Eng + student[k].Math + student[k].Jap)/k;
  }
  Ave /= num;
1. k で割ることの意味は何でしょうか?
2. k は 0~numまで変化しますが、最初で 0 割りが発生すると思いますが、発生していませんか?
[hr][追記]
2.はエラーメッセージがでてましたね。Windowsだと例外でプログラムが停止するので、発生していないのかと思ってしまいました。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: クラスにスレッドを含める
返信数: 7
閲覧数: 1543

Re: クラスにスレッドを含める

私の書いた内容がちゃんと理解できていなかったんですね。 さらに、 >スレッドの部分を静的関数にして、ClientSockへは引数をキャストして アクセスしようとしましたが、以下のようなエラーが出てきました。 ===以下エラー======================================================================== エラー E2451 serv.cpp 10: 未定義のシンボル TcpListener01(関数 __stdcall RecvThread(void *) ) エラー E2451 serv.cpp 10: 未定義のシンボル p(関...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: クラスにスレッドを含める
返信数: 7
閲覧数: 1543

Re: クラスにスレッドを含める

メンバ関数がスレッドのエントリポイントとして使えないことが原因 だと考えています。この問題を、解決する方法はありますでしようか? 原因はそのとおりでしょうね。クラスメンバー関数は元々インスタンスオブジェクトへのポインタが隠れ引数として渡されています。 (そのポインタが this です。) したがって CreateThread 関数の第三引数である LPTHREAD_START_ROUTINE 型ではないのでエラーになります。 これを回避するには対象を静的関数にしてしまいます。 static DWORD WINAPI RecvThread(LPVOID lpvoid) { // 内部処理 } ...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの結果がnanになってしまいます。
返信数: 31
閲覧数: 7901

Re: プログラムの結果がnanになってしまいます。

asd さんが書きました:蛇足ついでに代入と比較の間違いを減らす方法を。

固定値との比較をしたい場合、固定値を左辺に書くと、誤って代入の書式にした場合に
コンパイル時エラーになります。

コード:

if(1 == x)//1 = xと誤った場合、1に代入はできないのでコンパイラでエラーにしてくれる
こんな古いテクニックを使わなくても最近のコンパイラはちゃんと警告を出してくれるので、わざわざ読みにくいコードを書く必要はありませんね。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 成績処理のプログラムで質問です
返信数: 14
閲覧数: 3327

Re: 成績処理のプログラムで質問です

toto さんが書きました:maruさん20行目でbreakしているので100人固定ではないと思ういますが、
Ave /= 100.0;
Dev /=100.0;
を見て100以下の処理をやっていないと短絡的に見てしまいました。

今日は見落としばっかりで残念な私。orz
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの結果がnanになってしまいます。
返信数: 31
閲覧数: 7901

Re: プログラムの結果がnanになってしまいます。

asd さんが書きました:
maru さんが書きました:いいかげんに誰か指摘してもいいように思うんですが...
横槍ですが指摘自体はNo.2でboxさんが指摘、No.4で質問者様が直した報告をしていますよ。
まぁその後の皆さんのコードでは=のままなのでそれを指摘しているということであればその通りだと思います。
失礼しました。完全に見逃していました。
でもNo.4で直しても結果が変わらないって報告があって、その後も = のままなのはいただけないですよね。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 成績処理のプログラムで質問です
返信数: 14
閲覧数: 3327

Re: 成績処理のプログラムで質問です

プログラムの細かな点は他の方々が指摘されているので、別の問題点を指摘させていただきます。 問題文には 「100人以下の不特定の人数」 と有りますが、提示されているプログラムでは100人固定で処理を実行するようになっています。 生徒数は最大で100人なので、その成績を入れる構造体の数は100でかまいませんが、その全てに 有効なデータが入るとは限らないと考える必要があります。 そう考えるとデータの入力を無条件に100回繰り返すのではなく、入力の終了を判定することが 必要になります。また入力が終了したら、その後のデータ(構造体配列)にはデータが無効であ ることを示すようになっている必要があります。 ...

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