君子好逑 发表于 2020-6-25 16:43:56

随机数

#include<stdio.h>
#include<stdlib.h>

int main()
{
        int i,j,a;
        int max,row=0,column=0;
        for (i=0;i<3;i++)
        for (j=0;j<4;j++)
        {
                a=rand()%10;
        }
        max=a;
        for (i=0;i<3;i++)
        for (j=0;j<4;j++)
        {
                if(a>max)
                {
                        max=a;
                        row=i;
                        column=j;
                }
                printf("%3d",a);
                if(j==3)
                {
                        printf("\n");
                }
        }
        printf("最大的数为%d\n",max);
        printf("位置为%d行%d列",row+1,column+1);
}
就是这段代码,我运行了几回产生的随机数都一样,有大佬能指点一下为什么吗

qiuyouzhi 发表于 2020-6-25 16:47:42

你设置下种子试试?

小甲鱼的铁粉 发表于 2020-6-25 16:58:27

楼主少了一个东西srand(time(NULL));这个是让每次运行产生的随机数都不同的方法,需要调用一下,正确代码如下

#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main()
{
      int i,j,a;
      int max,row=0,column=0;
      srand(time(NULL));
      for (i=0;i<3;i++)
              for (j=0;j<4;j++)
              {
                a=rand()%10;
              }
      max=a;
      for (i=0;i<3;i++)
              for (j=0;j<4;j++)
                       {
                if(a>max)
                {
                        max=a;
                        row=i;
                        column=j;
                }
                printf("%3d",a);
                if(j==3)
                {
                        printf("\n");
                }
              }
      printf("最大的数为%d\n",max);
      printf("位置为%d行%d列",row+1,column+1);
}

小甲鱼的铁粉 发表于 2020-6-25 16:59:52

c语言中语句srand( (time(NULL) ) ; 表示设置bai一个随机种子,每次运行都能保证du随机种子不同。zhi在C语言中,rand()函数可以用来dao产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,它是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值。因此,C提供了srand()函数,它的原型是 void srand( int a)。用来改变这个种子值。srand( (time(NULL) )中time(NULL)函数是得到一个从1900年1月1日到现在的时间秒数,这样每一次运行程序的时间的不同就可以保证得到不同的随机数

小甲鱼的铁粉 发表于 2020-6-25 17:03:36

小甲鱼的铁粉 发表于 2020-6-25 16:58
楼主少了一个东西srand(time(NULL));这个是让每次运行产生的随机数都不同的方法,需要调用一下,正确代码如 ...

代码缩进乱了,再来一个
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main()
{
      int i,j,a;
      int max,row=0,column=0;
      srand(time(NULL));
      for (i=0;i<3;i++)
      for (j=0;j<4;j++)
      {
                a=rand()%10;
      }
      max=a;
      for (i=0;i<3;i++)
      for (j=0;j<4;j++)
      {
                if(a>max)
                {
                        max=a;
                        row=i;
                        column=j;
                }
                printf("%3d",a);
                if(j==3)
                {
                        printf("\n");
                }
      }
      printf("最大的数为%d\n",max);
      printf("位置为%d行%d列",row+1,column+1);
}

tiger吴 发表于 2020-6-25 17:26:49

c语言看着就好可怕

liuzhengyuan 发表于 2020-6-25 17:48:42

tiger吴 发表于 2020-6-25 17:26
c语言看着就好可怕

但 python是C写的

君子好逑 发表于 2020-6-25 18:27:41

小甲鱼的铁粉 发表于 2020-6-25 17:03
代码缩进乱了,再来一个

大佬,请收下我的膝盖

小甲鱼的铁粉 发表于 2020-6-25 18:33:25

君子好逑 发表于 2020-6-25 18:27
大佬,请收下我的膝盖

不客气{:10_297:}

小甲鱼的铁粉 发表于 2020-6-25 18:35:10

tiger吴 发表于 2020-6-25 17:26
c语言看着就好可怕

哈哈,个人c语言其实多练题之后还是很简单的,当然个人觉得指针除外{:10_245:}
页: [1]
查看完整版本: 随机数