用C语言随机生成多组点的坐标
时间: 2024-05-12 15:17:03 浏览: 16
好的,您可以使用C语言中的rand()函数来生成随机数,然后根据需要的点的个数,使用两个数组来保存每个点的x坐标和y坐标,如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int n; // 需要生成的点的个数
printf("请输入需要生成的点的个数:");
scanf("%d", &n);
// 根据当前时间设置随机数种子
srand(time(0));
int x[n], y[n]; // 分别保存每个点的x坐标和y坐标
for (int i = 0; i < n; i++) {
x[i] = rand() % 100; // 生成0~99之间的随机x坐标
y[i] = rand() % 100; // 生成0~99之间的随机y坐标
printf("(%d, %d)\n", x[i], y[i]); // 打印当前生成的点的坐标
}
return 0;
}
```
以上代码会根据输入的需要生成的点的个数n,生成n个点的随机坐标,并依次打印每个点的坐标。
相关问题
用c语言编写:给定平面(100,100)内随机生成100个点
以下是一个简单的C语言程序,用于生成100个在平面(100,100)内的随机点。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i;
int x, y;
srand(time(NULL)); // 初始化随机数生成器
for (i = 0; i < 100; i++) {
x = rand() % 100; // 生成 0 到 99 之间的随机数
y = rand() % 100;
printf("(%d, %d)\n", x, y);
}
return 0;
}
```
程序使用了 `rand()` 函数来生成随机数,并使用 `srand()` 函数来初始化随机数生成器。程序生成 100 个点,每个点的坐标都是在 0 到 99 之间的随机数。程序输出每个点的坐标。
C语言实现生成随机二维迷宫 1代表墙0代表路
生成随机二维迷宫可以使用深度优先搜索算法(DFS)或广度优先搜索算法(BFS)。下面是一个使用DFS算法生成随机二维迷宫的C语言实现代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 15 // 迷宫行数
#define COL 15 // 迷宫列数
int maze[ROW][COL];
// DFS算法生成迷宫
void dfs(int x, int y) {
int dir[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; // 右下左上四个方向
int visit[4] = {0, 1, 2, 3}; // 随机打乱方向
srand((unsigned)time(NULL)); // 以时间为种子生成随机数
for (int i = 0; i < 4; i++) {
int r = rand() % 4;
int tmp = visit[i];
visit[i] = visit[r];
visit[r] = tmp;
}
for (int i = 0; i < 4; i++) {
int nx = x + dir[visit[i]][0] * 2; // 横坐标
int ny = y + dir[visit[i]][1] * 2; // 纵坐标
if (nx >= 0 && nx < ROW && ny >= 0 && ny < COL && maze[nx][ny] == 1) {
maze[x + dir[visit[i]][0]][y + dir[visit[i]][1]] = 0;
maze[nx][ny] = 0;
dfs(nx, ny);
}
}
}
int main() {
// 初始化迷宫
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
if (i == 0 || i == ROW - 1 || j == 0 || j == COL - 1) {
maze[i][j] = 1; // 边界设置为墙
} else {
maze[i][j] = 1 - (rand() % 2); // 随机生成路或墙
}
}
}
// 从起点开始生成迷宫
maze[1][0] = 0;
dfs(1, 1);
// 输出迷宫
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
printf("%d ", maze[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个实现中,我们使用DFS算法随机生成迷宫。首先,我们初始化一个ROW行COL列的迷宫,将边界设置为墙,中间随机生成路或墙。然后从起点(1,0)开始生成迷宫,首先打乱四个方向的顺序,然后依次尝试向右、下、左、上四个方向生成迷宫,如果该方向上的下一个格子是未访问过的墙(即值为1),就将其设置为路(即值为0),然后以该格为起点继续递归生成迷宫。最后,输出整个迷宫。