randで取得した回数分繰り返したい
Posted: 2011年2月10日(木) 01:12
初めまして。
c言語初心者です。
今回、戦闘だけを繰り返すプログラムを作ってみようと思い、書き始めたのですが
途中で実行して確認してみると繰り返し部分がきちんと動作しませんでした…
stage(乱数)の回数分for文で敵の出現を繰り返したいのですが、printfで確認した所繰り返し回数が全くstageと違います…
どの辺りがおかしいのか、よろしければご指導お願い致します。
値だけ入れておいて使ってない変数は今後使う予定です。
以下コードと実行結果を置いておきます
実行結果
stage=20
何もいない…
(・∀・)があらわれた!
ループ後3
実行結果2
stage=15
(´・ω・`)があらわれた!
ループ後1
c言語初心者です。
今回、戦闘だけを繰り返すプログラムを作ってみようと思い、書き始めたのですが
途中で実行して確認してみると繰り返し部分がきちんと動作しませんでした…
stage(乱数)の回数分for文で敵の出現を繰り返したいのですが、printfで確認した所繰り返し回数が全くstageと違います…
どの辺りがおかしいのか、よろしければご指導お願い致します。
値だけ入れておいて使ってない変数は今後使う予定です。
以下コードと実行結果を置いておきます
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
int main(void){
int stage,a,enemy,lv,estr,edef,ehp;
char ename[10];
srand(time(NULL));
stage=rand()%20+1; //ステージ全20
printf("stage=%d回\n",stage);
for(a=1;a<=stage;a++){
enemy=rand()%8+1; //敵全5種+ハズレ
if(enemy<=2){
strcpy(ename,"(^o^)");//ザコ
estr=2+lv;
edef=1+lv;
ehp=4+(lv*2);
}
else if(enemy==3||enemy==4){
strcpy(ename,"(^q^)");//ザコ2
estr=1+lv;
edef=2+lv;
ehp=3+(lv*2);
}
else if(enemy==5){
strcpy(ename,"(´・ω・`)");//中
estr=4+lv;
edef=3+lv;
ehp=5+(lv*2);
}
else if(enemy==6){
strcpy(ename,"(・∀・)");//中
estr=3+lv;
edef=4+lv;
ehp=4+(lv*2);
}
else if(enemy==7){
strcpy(ename,"(`・ω・´) ");//強
estr=5+lv;
edef=4+lv;
ehp=4+(lv*2);
}
else if(enemy==8){
printf("何もいない…\n");//ハズレ
}
if(enemy<=7){
printf("%sがあらわれた!\n",ename);
}
}
printf("ループ後i=%d",i);
return 0;
}
stage=20
何もいない…
(・∀・)があらわれた!
ループ後3
実行結果2
stage=15
(´・ω・`)があらわれた!
ループ後1