構造体配列の種類分けについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Cげんが~

構造体配列の種類分けについて

#1

投稿記事 by Cげんが~ » 17年前

こちらの掲示板で質問させていただいたおかげで、構造体の配列を作る事が出来ました。
本当にありがとうございました。

次のステップに移り、次は構造体配列のひとつひとつを、種類分けしようとしてるんですが、
なかなか上手く出来ません。
例えば、構造体配列 element[10]があるとしまして、そのメンバにkindがあります。
そのkindを1~5までの好きな数字に変えたいんですが、
何かいい方法はありませんでしょうか?

現在描いたプログラムは

//マウスが範囲0≦x≦32、0≦y≦32でクリックされれば、elementの種類を4にする。
else if(IsDownMouseLeft(mouseInfo)
&& (0<mouseInfo->pos.x && mouseInfo->pos.x<=32)
&& (0<mouseInfo->pos.y && mouseInfo->pos.y<=32))
element->kind = 1;

//マウスが範囲0≦x≦32、195≦y≦220でクリックされれば、elementの種類を2にする。
if(IsDownMouseLeft(mouseInfo)
&& (0<mouseInfo->pos.x && mouseInfo->pos.x<=32)
&& (195<mouseInfo->pos.y && mouseInfo->pos.y<=220))
element->kind = 2;
         ・
         ・
         ・


としましたが、一回目のクリックでは種類分けできるものの、また、違う場所をクリックしますと、
一旦種類分けしたものまでも、また種類が変わってしまいます。

どのようにしたらよいのでしょうか?ご教授お願いします。


やりたいことのフローチャートは
 
                →→→→→→→「素子の種類は1」→→→
               ↑ ※種類1 ↓
「素子の種類defalt」→→「種類分け」        「END ※一度決められた種類は変えられない」 
               ↓ ※種類2              ↑
                →→→→→→→「素子の種類は2」→→→

です。よろしくお願いします。

Cげんが~

Re:構造体配列の種類分けについて

#2

投稿記事 by Cげんが~ » 17年前

すいません。フローチャートの方、上手く描けていませんでしたので、
訂正させていただきます。

                →→→→→→→「素子の種類は1」→→→
               ↑ ※種類1                   ↓
「素子の種類defalt」→→「種類分け」        「END ※一度決められた種類は変えられない」 
               ↓ ※種類2                   ↑
                →→→→→→→「素子の種類は2」→→→

やそ

Re:構造体配列の種類分けについて

#3

投稿記事 by やそ » 17年前

再度変わってしまうことを避けたいのならば、
if文にそれを反映させればいいだけのような気が・・・

          <yes>   →→→→→→→「素子の種類は1」→→→
               ↑ ※種類1                   ↓
「素子の種類defalt」→→「種類分け」        「END ※一度決められた種類は変えられない」 
          ↓    ↓ ※種類2                   ↑
          ↓<no>   →→→→→→→「素子の種類は2」→→→
          ↓
「END ※一度決められた種類は変えられない」

でしょうかね。

Cげんが~

Re:構造体配列の種類分けについて

#4

投稿記事 by Cげんが~ » 17年前

返信ありがとうございます。

> 再度変わってしまうことを避けたいのならば、
>if文にそれを反映させればいいだけのような気が・・・

知識不足のため、どのようにすればよいのか分かりません。
もしよろしければ、教えていただけないでしょうか?
お願いします。

box

Re:構造体配列の種類分けについて

#5

投稿記事 by box » 17年前

> 例えば、構造体配列 element[10]があるとしまして、そのメンバにkindがあります。

この定義だと

>         element->kind = 1;

element[0].kind = 1;

のように書くのではありませんか?
違っていたらすみません。

あるいは、

>         element->kind = 1;

において、変数elementは当該の構造体を指すポインタ変数として
定義しているのでしょうか?

Cげんが~

Re:構造体配列の種類分けについて

#6

投稿記事 by Cげんが~ » 17年前

boxさん、やそさんありがとうございます。

>element[0].kind = 1;
>のように書くのではありませんか?

のように、ひとつひとつを分けて考えてみましたら、何とかできそうです。

まだ、完璧に出来た訳ではありませんが。
これから改善がんばってみます。ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る