C语言中如何产生随机的二维数组的坐标

C语言中如何产生随机的二维数组的坐标,第1张

使用随机函数即可产生随机数

1、C语言提供了一些库函数来实现随机数的产生。C语言中有三个通用的随机数发生器,分别为 rand函数, random函数, randomize 函数

2、但是rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。

3、在调用rand函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。

举例:

#include <stdioh>
#include <stdlibh> 
#include <timeh>
int main()
 {
    int a[10][2];
    int i,j,x,y;
     srand(time(NULL));/随机数种子/ 
    for ( i=0;i<10;i++)
      for ( j=0;j<2;j++)
         {
            a[i][j]=0+ rand()%10;/产生0到10(不包括10)之间的随机数/ 
         }
    printf("输出元素:\n");
     for ( i=0;i<10;i++)
      for ( j=0;j<2;j++)
         {
                          
            printf("a[%d][%d]=%d ",i,j,a[i][j]);
            if((j+1)%2==0)
            printf("\n");
         }   
getchar();
return 0;
 }

两种方法
一种 基础数组
你的坐标有几维 就定义几个数组,然后输出的时候 逐个输出
比如 二维
int x[100], y[100];
输出(x[i],y[i]);
第二种 结构体数组
定义结构体
逐个输出。

#include <stdioh>
#include<mathh>
int main(void)
{
double a,b,c,L,s,p,x1,y1,x2,y2,x3,y3;
printf("坐标1:\n");
scanf("%lf%lf",&x1,&y1);
printf("坐标2:\n");
scanf("%lf%lf",&x2,&y2);
printf("坐标3:\n");
scanf("%lf%lf",&x3,&y3);
a=sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2));
b=sqrt((x2-x3)(x2-x3)+(y2-y3)(y2-y3));
c=sqrt((x1-x3)(x1-x3)+(y1-y3)(y1-y3));
if(a+b>c&&a+c>b&&b+c>a){
L=(a+b+c);
p=(a+b+c)05;
s=sqrt(p(p-a)(p-b)(p-c));
printf("L=%2lfs=%2lf\n",L,s);
}
else
printf("impossible");
return 0;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12634944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存