我正在尝试在0到800之间生成100个不同的随机数,并重复生成10次随机数,然后使用逗号分隔数字,但我遇到了问题。在这个例子中,我使用2D数组来实现这一点,但我似乎没有让它工作。
int main(void)
{
int table[10][10];
int i;
int nSize = sizeof(table)/sizeof(int);
for (i = 0; i < nSize; i++)
{
for (j = 0; j < nSize; j++)
printf("%d,",table[i][j] = rand() % 800);
}
printf("\n");
}
输出应该类似于以下内容:
1, 3, 500, 400, 322, ...
2, 5, 200, 321, 212, ...
500, 433, 421, 354, 545, ...
..
..
..
..
..
..
500, 321, 314, 434, 343, ...
以上是一个例子而不是实际值。
答案 0 :(得分:1)
table
的其中一个维度应为100,因为您有100个随机数。答案 1 :(得分:0)
#define ROW 10
#define COL 10
int array[ROW][COL];
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
array[i][j] = rand() % 801; // if rand() % 800, then it generate 0 - 799, never 800
答案 2 :(得分:0)
只需将printf("\n")
移动到外部for循环中,您就不必使用数组:
int main(void)
{
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
printf("%s%d", j > 0 ? "," : "", rand() % 800);
}
printf("\n");
}
}
注意:这将生成0到799之间的数字。