#include "DxLib.h"
#include <stdio.h>
int soujinkou=0;//変数宣言、総人口
int human[99999999][2];//個々のステータス、性別(0=男1=女),年齢,子供の数,存在しているか 一億が限界値
int i_w=0;//whileの回数かうんた
int i_f=0;//forの回数かうんた
int i_x=0;//配列に代入するようのかうんた
int i_y=0;//上に同じく
int i_f2;//for用2
int trun=0;
int rand_sex;
int rand_age;
int rand_chird;
int rand_deth;
int rand_alive;
int rand_tmp;
int rang_beborn;
int white=GetColor(255,255,255);
int type;//人口ピラミッドの型 0=富士山型(子供多老人少)1=つりがね(年齢の人口差少)2=つぼ(少子高齢)3=星形(子供少老人少大人多)4=ひょうたん(子供多老人=大人)
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
switch (type){//ピラミッド型による仕分け
case 0://富士山型の場合
for (i_f2=0;i_f2<=99999999;i_f2++){
human[i_f2][3]=0;
}
for (i_f2=0;i_f2<=13;i_f2++){//年齢性別はランダム決定 子供の数は0固定
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=14;i_f2<=25;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+5;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=26;i_f2<=35;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+10;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=36;i_f2<=44;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+15;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=45;i_f2<=52;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+20;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=53;i_f2<=58;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+25;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=59;i_f2<=63;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+30;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=64;i_f2<=69;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+35;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=70;i_f2<=74;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+40;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=75;i_f2<=79;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+45;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=80;i_f2<=84;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+50;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=85;i_f2<=89;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+55;
human[i_f2][2]=0;
human[i_f2][3]=1;
D
}
for(i_f2=90;i_f2<=94;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+60;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=95;i_f2<=99;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+65;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=100;i_f2<=103;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+70;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=104;i_f2<=106;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+75;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=107;i_f2<=108;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+80;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=109;i_f2<=110;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+85;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
for(i_f2=111;i_f2<=112;i_f2++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f2][0]=rand_sex;
human[i_f2][1]=rand_age+90;
human[i_f2][2]=0;
human[i_f2][3]=1;
}
DrawString(0,0,"初期配置が完了しました",white);
WaitTimer( 3000 ) ;
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
if(trun==0) soujinkou=100;
trun++;
rand_tmp=50;
if(trun%2==0) rand_tmp--;
DrawFormatString( 0, 460, white , "%dターン目" , trun );//ターン数表示
DrawFormatString( 0, 0, white , "%d人" , soujinkou );//総人口表示
for(i_f=0;i_f<=soujinkou;i_f++){//死亡出生計算
switch(human[i_f][1]){
case 0:
case 1:
case 2:;
if (human[i_f][3]!=0){
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}
}
}
WaitTimer(500);
}
case 1:
case 2:
case 3:
case 4:;
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
このプログラムで、human[x][3]の変数が1か2しか代入していないはずなのに突然5などになって困っています
原因わかる方いませんでしょうか?
ちなみにプログラムはまだ始めたばかりです。
環境はWindows7、VC++です。