18227452746 发表于 2022-2-20 14:31:25

求助各位大神,怎么让随机数不相同?

各位大神,我按照现在学习的进度没有学习数组,就自己搞了一个双色球,有什么方法将每个随机球输出不一样的值吗?
代码奉上:#include<stdio.h>
#include<time.h>
int main()
{
        srand(time(NULL));
        int h1,h2,h3,h4,h5,h6;
        int l1;
        int i = 0;
        while (i<10)
        {
                h1 = rand() % 33 + 1;
                h2 = rand() % 33 + 1;
                h3 = rand() % 33 + 1;
                h4 = rand() % 33 + 1;
                h5 = rand() % 33 + 1;
                h6 = rand() % 33 + 1;
                l1 = rand() % 16 + 1;
                i++;
                printf("红球:%d\t,%d\t,%d\t,%d\t,%d\t,%d\n.蓝球:%d\n",h1,h2,h3,h4,h5,h6,l1);
        }
        return 0;
}

client_2233 发表于 2022-2-20 16:36:33

for循环,rand生成的放在外边https://fishc.com.cn/forum.php?mod=viewthread&tid=84363&extra=page%3D1%26filter%3Dtypeid%26typeid%3D583

jhq999 发表于 2022-2-20 18:03:27

本帖最后由 jhq999 于 2022-2-20 18:31 编辑

#include<time.h>
int main()
{
      srand(time(NULL));
      int h1=0,h2=0,h3=0,h4=0,h5=0,h6=0;
      int l1=0;
      int rndval=0,flag=1;
         l1 = rand() % 16 + 1;
      while (1)
      {
                flag=1;
               do{rndval=rand() % 33 + 1;}while(rndval==h1||rndval==h2||rndval==h3||rndval==h4||rndval==h5||rndval==h6);
   
                if(!h1) h1=rndval,flag=0;
                if(!h2&&flag) h2=rndval,flag=0;
                if(!h3&&flag) h3=rndval,flag=0;
                if(!h4&&flag) h4=rndval,flag=0;
                if(!h5&&flag) h5=rndval,flag=0;
                if(!h6&&flag) h6=rndval,flag=0;

                if(flag)break;
      }
      printf("红球:%d\t,%d\t,%d\t,%d\t,%d\t,%d\n.蓝球:%d\n",h1,h2,h3,h4,h5,h6,l1);
      return 0;
}
红球:23      ,6      ,12   ,27   ,2      ,16
.蓝球:11



int main()
{
      srand(time(NULL));
      int h1=0,h2=0,h3=0,h4=0,h5=0,h6=0;
      int l1=0;
      int rndval=0;
         l1 = rand() % 16 + 1;
      while (!(h1&&h2&&h3&&h4&&h5&&h6))
      {
               
               do{rndval=rand() % 33 + 1;}while(rndval==h1||rndval==h2||rndval==h3||rndval==h4||rndval==h5/*||rndval==h6*/);
   
                if(!h1) h1=rndval;
                else if(!h2) h2=rndval;
                else if(!h3) h3=rndval;
                else if(!h4) h4=rndval;
                else if(!h5) h5=rndval;
                else if(!h6) h6=rndval;

               
      }
      printf("红球:%d\t,%d\t,%d\t,%d\t,%d\t,%d\n.蓝球:%d\n",h1,h2,h3,h4,h5,h6,l1);
      return 0;
}

红球:8 ,30   ,33   ,14   ,17   ,28
.蓝球:2

lhgzbxhz 发表于 2022-2-20 20:01:33

参考:https://www.cnblogs.com/eaglet/archive/2011/01/17/1937083.html
页: [1]
查看完整版本: 求助各位大神,怎么让随机数不相同?