ページ 11

課題プログムラムについて

Posted: 2012年5月23日(水) 10:07
by lulu
敵キャラを扱うためのメモリを動的に確保しそれぞれの指示された値で初期化する
処理の流れは
敵キャラの数をnを入力し必要なメモリを動的に確保して初期化。
正しく初期化されたか1体ずつ画面に表示して確認という課題なんですが
どうかご教授お願いします
自分でなんとくなくわかるとこらへんまで組んでみたのを書いときます

コード:

struct ENEMY{
	char id;
	short atk;
	short def;
	int level;
};

void main(void){
	struct ENEMY zako;
	struct ENEMY* p;
	int n;
	int i;

	printf("敵キャラの数を入力:");
	scanf("%d", &n);


	p = (ENEMY*)malloc(sizeof(ENEMY)*n);
}

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 10:52
by softya(ソフト屋)
フォーラムルールをお読み頂くと分かるのですが、codeタグをご利用をお願いしております。
今回は設定しておきましたが次回はお願いします。

プログラムが途中で終わっていますがiまで用意されているのでfor文の分はまったく書けない状態でしょうか?
それと「それぞれの指示された値で初期化する」とありますが、どこからどのような形で指示するか説明してもらえますか?

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 19:20
by lulu
フォーラムルールのとこはすいません

char id には0,1,2...n
short atk 100~199の乱数で
short def 100~199の乱数で
int level 100~199の乱数で初期化していく形で作りたいんです

for分のとこもあやふやので教えてもらいたいです

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 19:26
by softya(ソフト屋)
フォーラムルールを読まれたと思いますが課題の期限についても言及されていたはずですが慌てていないという認識でよろしいですか?

では、課題を解決するために下記問題を解いてみてください。課題で出される以上は習っているはずです。
(1)乱数でhoを初期化してみてください。値は50から59の範囲です。
int ho;
(2)配列をfor文で初期化してみてください。値は1,3,5です。
int ary[3];

まず、これが解けたら次の段階に進みます。

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 19:42
by lulu
(1)

コード:

int ho;
ho = rand()%60+50;
(2)
for文での初期化がよくわからないです・・・

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 19:45
by softya(ソフト屋)
lulu さんが書きました:(1)

コード:

int ho;
ho = rand()%60+50;
(2)
for文での初期化がよくわからないです・・・
(1)それだと50から109の範囲です。
(2)どんなfor文なら書けるのでしょうか?

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 19:52
by lulu
(1)

コード:

int ho;
ho = rand()%10+50;
(2)

コード:

int ary[3];
int i;
for(i=0; i<3; i++){
     
}
1,3,5という値を入力するのにfor文の中身の書き方がわからないです

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 20:18
by softya(ソフト屋)
lulu さんが書きました:(1)

コード:

int ho;
ho = rand()%10+50;
(2)

コード:

int ary[3];
int i;
for(i=0; i<3; i++){
     
}
1,3,5という値を入力するのにfor文の中身の書き方がわからないです
(1)はOKですね。
(2)は0,1,2なら大丈夫ですか?あるいはforを使わないなら出来ますか?

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 20:55
by lulu

コード:

 int ary[3];
int i;
for(i=0; i<3; i++){
   ary = i;
       ary++
}


o,1,2ならこれで大丈夫ですか?

for文使わない形なら

コード:

int ary[3]={1, 3, 5};
こんな感じでいいんでしょうか

Re: 課題プログムラムについて

Posted: 2012年5月23日(水) 20:58
by softya(ソフト屋)
lulu さんが書きました:

コード:

 int ary[3];
int i;
for(i=0; i<3; i++){
   ary = i;
       ary++
}


o,1,2ならこれで大丈夫ですか?
それだとダメですね。
ここで回答する前にコンパイルして確認してみてください。
ポインタ的な書き方と配列を安易に一緒だと思わないほうが良いです。
lulu さんが書きました: for文使わない形なら

コード:

int ary[3]={1, 3, 5};
こんな感じでいいんでしょうか
確かにそれならOKです。
じゃあ代入文でループをせずに書くとどうなりますか?