human[x][3]は5などにはならなくなりましたが、1を代入したのに0に戻るなど、またよくわからないことになりました。
#include "DxLib.h"
#include <stdio.h>
int soujinkou=0;//変数宣言、総人口
long int human[100000000][3]={{0}};//個々のステータス、性別(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_f=0;i_f<=13;i_f++){//年齢性別はランダム決定 子供の数は0固定
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age;//ここらへんからおかしくなります
human[i_f][3]=1;
}
for(i_f=14;i_f<=25;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+5;
human[i_f][3]=1;
}
for(i_f=26;i_f<=35;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+10;
human[i_f][3]=1;
}
for(i_f=36;i_f<=44;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+15;
human[i_f][3]=1;
}
for(i_f=45;i_f<=52;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+20;
human[i_f][3]=1;
}
for(i_f=53;i_f<=58;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+25;
human[i_f][3]=1;
}
for(i_f=59;i_f<=63;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+30;
human[i_f][3]=1;
}
for(i_f=64;i_f<=68;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+35;
human[i_f][3]=1;
}
for(i_f=69;i_f<=73;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+40;
human[i_f][3]=1;
}
for(i_f=74;i_f<=77;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+45;
human[i_f][3]=1;
}
for(i_f=78;i_f<=81;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+50;
human[i_f][3]=1;
}
for(i_f=82;i_f<=85;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+55;
human[i_f][3]=1;
}
for(i_f=86;i_f<=89;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+60;
human[i_f][3]=1;
}
for(i_f=890;i_f<=92;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+65;
human[i_f][3]=1;
}
for(i_f=93;i_f<=95;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+70;
human[i_f][3]=1;
}
for(i_f=96;i_f<=97;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+75;
human[i_f][3]=1;
}
for(i_f=98;i_f<=98;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+80;
human[i_f][3]=1;
}
for(i_f=99;i_f<=99;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+85;
human[i_f][3]=1;
}
for(i_f=100;i_f<=100;i_f++){
rand_sex=GetRand(1);//乱数を設定
rand_age=GetRand(5);
human[i_f][0]=rand_sex;
human[i_f][1]=rand_age+90;
human[i_f][3]=1;
}
DrawString(0,0,"初期配置が完了しました",white);//デバッグ用
WaitTimer( 3000 ) ;
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
for(i_f=0;i_f<=120;i_f++){//ここで総人口の計算をしていますが、human[x][3]がおかしいのでうまくいきません
if (human[i_f][3]==1) soujinkou++;
}
trun++;
rand_tmp=50;
if(trun%30==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]==1){//生きているもののみ死亡処理をする
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;
}
}
}//ここまで死亡処
break;
case 3:
case 4:
case 5:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-10;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 6:
case 7:
case 8:
case 9:
case 10:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-15;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 11:
case 12:
case 13:
case 14:
case 15:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-20;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 16:
case 17:
case 18:
case 19:
case 20:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-25;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 21:
case 22:
case 23:
case 24:
case 25:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-25;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 26:
case 27:
case 28:
case 29:
case 30:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-25;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 31:
case 32:
case 33:
case 34:
case 35:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-25;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 36:
case 37:
case 38:
case 39:
case 40:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-25;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 41:
case 42:
case 43:
case 44:
case 45:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-20;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
}//ここまで死亡処理
break;
case 46:
case 47:
case 48:
case 49:
case 50:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-20;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
break;
}//ここまで死亡処理
case 51:
case 52:
case 53:
case 54:
case 55:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-15;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
break;
}//ここまで死亡処理
case 56:
case 57:
case 58:
case 59:
case 60:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-15;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
break;
}//ここまで死亡処理
case 61:
case 62:
case 63:
case 64:
case 65:
if (human[i_f][3]==1){//生きているもののみ死亡処理をする
rand_deth=GetRand(99);//100の乱数をそれぞれ指定し、合致したら死ぬ。
for (i_f2=0;i_f2<=rand_tmp-10;i_f2++){
rand_alive=GetRand(99);
if (rand_alive==rand_deth){
human[i_f][3]=0;
soujinkou--;
break;
}
}
break;
}//ここまで死亡処理
}
}
WaitKey();
}
case 1:
case 2:
case 3:
case 4:;
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
何度も似たような質問すいません。