鱼C论坛

 找回密码
 立即注册
查看: 1165|回复: 3

[已解决]求助各位大神,怎么让随机数不相同?

[复制链接]
发表于 2022-2-20 14:31:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大神,我按照现在学习的进度没有学习数组,就自己搞了一个双色球,有什么方法将每个随机球输出不一样的值吗?
代码奉上:#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;
}
最佳答案
2022-2-20 18:03:27
本帖最后由 jhq999 于 2022-2-20 18:31 编辑
  1. #include<time.h>
  2. int main()
  3. {
  4.         srand(time(NULL));
  5.         int h1=0,h2=0,h3=0,h4=0,h5=0,h6=0;
  6.         int l1=0;
  7.         int rndval=0,flag=1;
  8.          l1 = rand() % 16 + 1;
  9.         while (1)
  10.         {
  11.                 flag=1;
  12.                do{rndval=rand() % 33 + 1;}while(rndval==h1||rndval==h2||rndval==h3||rndval==h4||rndval==h5||rndval==h6);
  13.    
  14.                 if(!h1) h1=rndval,flag=0;
  15.                 if(!h2&&flag) h2=rndval,flag=0;
  16.                 if(!h3&&flag) h3=rndval,flag=0;
  17.                 if(!h4&&flag) h4=rndval,flag=0;
  18.                 if(!h5&&flag) h5=rndval,flag=0;
  19.                 if(!h6&&flag) h6=rndval,flag=0;

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


  1. int main()
  2. {
  3.         srand(time(NULL));
  4.         int h1=0,h2=0,h3=0,h4=0,h5=0,h6=0;
  5.         int l1=0;
  6.         int rndval=0;
  7.          l1 = rand() % 16 + 1;
  8.         while (!(h1&&h2&&h3&&h4&&h5&&h6))
  9.         {
  10.                
  11.                do{rndval=rand() % 33 + 1;}while(rndval==h1||rndval==h2||rndval==h3||rndval==h4||rndval==h5/*||rndval==h6*/);
  12.    
  13.                 if(!h1) h1=rndval;
  14.                 else if(!h2) h2=rndval;
  15.                 else if(!h3) h3=rndval;
  16.                 else if(!h4) h4=rndval;
  17.                 else if(!h5) h5=rndval;
  18.                 else if(!h6) h6=rndval;

  19.                
  20.         }
  21.         printf("红球:%d\t,%d\t,%d\t,%d\t,%d\t,%d\n.蓝球:%d\n",h1,h2,h3,h4,h5,h6,l1);
  22.         return 0;
  23. }
复制代码

  1. 红球:8 ,30     ,33     ,14     ,17     ,28
  2. .蓝球:2
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-2-20 16:36:33 | 显示全部楼层
for循环,rand生成的放在外边https://fishc.com.cn/forum.php?m ... peid%26typeid%3D583
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-20 18:03:27 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2022-2-20 18:31 编辑
  1. #include<time.h>
  2. int main()
  3. {
  4.         srand(time(NULL));
  5.         int h1=0,h2=0,h3=0,h4=0,h5=0,h6=0;
  6.         int l1=0;
  7.         int rndval=0,flag=1;
  8.          l1 = rand() % 16 + 1;
  9.         while (1)
  10.         {
  11.                 flag=1;
  12.                do{rndval=rand() % 33 + 1;}while(rndval==h1||rndval==h2||rndval==h3||rndval==h4||rndval==h5||rndval==h6);
  13.    
  14.                 if(!h1) h1=rndval,flag=0;
  15.                 if(!h2&&flag) h2=rndval,flag=0;
  16.                 if(!h3&&flag) h3=rndval,flag=0;
  17.                 if(!h4&&flag) h4=rndval,flag=0;
  18.                 if(!h5&&flag) h5=rndval,flag=0;
  19.                 if(!h6&&flag) h6=rndval,flag=0;

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


  1. int main()
  2. {
  3.         srand(time(NULL));
  4.         int h1=0,h2=0,h3=0,h4=0,h5=0,h6=0;
  5.         int l1=0;
  6.         int rndval=0;
  7.          l1 = rand() % 16 + 1;
  8.         while (!(h1&&h2&&h3&&h4&&h5&&h6))
  9.         {
  10.                
  11.                do{rndval=rand() % 33 + 1;}while(rndval==h1||rndval==h2||rndval==h3||rndval==h4||rndval==h5/*||rndval==h6*/);
  12.    
  13.                 if(!h1) h1=rndval;
  14.                 else if(!h2) h2=rndval;
  15.                 else if(!h3) h3=rndval;
  16.                 else if(!h4) h4=rndval;
  17.                 else if(!h5) h5=rndval;
  18.                 else if(!h6) h6=rndval;

  19.                
  20.         }
  21.         printf("红球:%d\t,%d\t,%d\t,%d\t,%d\t,%d\n.蓝球:%d\n",h1,h2,h3,h4,h5,h6,l1);
  22.         return 0;
  23. }
复制代码

  1. 红球:8 ,30     ,33     ,14     ,17     ,28
  2. .蓝球:2
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-20 20:01:33 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 02:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表