このプログラムを使用して、6x15配列を0に設定しようとしていて、配列のランダムスロットに乱数xを置きます。予定通りしかし、それは行かない... MAX_ROWSは6であるランダムに配置された数値を配列に生成する試み
注意、MAX_COLSは15で、OCEANこれは、ランダムな数字を配置する必要が0
#include <stdio.h>
#include <time.h>
#include "util.h"
int rand_number(int param);
main()
{
int map[MAX_ROWS][MAX_COLS]; //initializes an array, map, with the dimensions 6 and 15.
//sets all values in the array to 0
int a,b;
for (a = 0; a < MAX_ROWS; a++)
{
for (b = 0; b < MAX_COLS; b++)
{map[a][b]=OCEAN;}
}
int shipnum = 6;
です。 (shipnumは私が置いて船の数を制限するために使用するだけの値である):
while(shipnum > 0)
{
map[rand_number(MAX_ROWS)][rand_number(MAX_COLS)] = 3;
shipnum -= 1;
map[rand_number(MAX_ROWS)][rand_number(MAX_COLS)] = 2;
shipnum -= 2;
map[rand_number(MAX_ROWS)][rand_number(MAX_COLS)] = 1;
shipnum -= 3;
}
しかし、私は
/*This will print the array*/
for (a = 0; a < MAX_ROWS; a++)
{
for (b = 0; b < MAX_COLS; b++)
{printf("%d ", map[a][b]);}
printf("\n");
}
}
を実行したときに、私は
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
実際に私を与えています何かを取得したい
0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 2 0 0 0 0 0 3 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
これは私が乱数を生成するために使用する関数です。
/*This will generate a random number*/
int rand_number(int param)
{
srand((unsigned int)time(NULL));
int x = param;
int rn = rand() % x;
return rn;
}
これは新しい戦艦映画のためですか? – nvuono