| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2916 人关注过本帖
标题:求解,为什么不能重新检测数字是否重复
取消只看楼主 加入收藏
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
求解,为什么不能重新检测数字是否重复
代码如下。。下面有图片

# include <stdio.h>
# include <time.h>

void chongf(int b[], int j)//判断是否重复数字,如果是则重新生成一个随机数
{
    int a;
    for(a=1;a<18;a++)
    {
        if(b[j] == b[j-a])
        {
            b[j] = rand() % 35 + 1;
        }
    }
}

void main()
{
    int i[19];
    int a;
    int j;

    for(j=0; j<19; j++)
    {
        i[j] = rand() % 35 + 1;
        chongf(i,19);
    }
   
    for(j=0;j<19;j++)
    {
        printf("%d\t\n",i[j]);
    }
   
}



图片附件: 游客没有浏览图片的权限,请 登录注册
2016-01-04 15:38
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 3楼 wengbin
对。没错。是需要添加一个时间种子。有一个问题就是为什么不会检查重复的数字呢。
2016-01-04 20:03
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 2楼 wengbin
为什么只有第一个7才会有重复数呢。。我知道是数组是从0开始的。
2016-01-04 20:05
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 3楼 wengbin
图片附件: 游客没有浏览图片的权限,请 登录注册



不是7也一样有重复的数字。
2016-01-04 20:22
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 7楼 wmf2014
版主说的太好了。正在解决这些问题。
2016-01-05 11:03
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 10楼 wengbin
版主良心···为我等小白解答。感谢··
2016-01-05 11:04
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 15楼 tredy6t
已加,,谢谢
2016-01-05 14:16
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 16楼 demon90s
感谢,
2016-01-05 14:18
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 10楼 wengbin
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
void chongf(int* ar, int d)//判断是否重复数字,如果是则重新生成一个随机数
{
    for (int i = 0; i<d; i++)
    {
        if (ar[i] == ar[d])
        {
            ar[d] = rand() % 35 + 1;
            i = -1;
        }
    }
}

int main()
{
    int arr[9][19];
    srand(time(0));
    for (int k = 0; k < 9; k++)
    {
        for (int i = 0; i < 19; i++)
        {
            arr[k][i] = rand() % 35 + 1;
            chongf(arr, i);
            printf("%d\t", arr[k][i]);
        }
        printf("\n\n");
    }

    system("pause");
    return 0;
}


如果是使用二维数组就不行了··这是为什么呢。
2016-01-06 10:59
qq_s15
Rank: 2
等 级:论坛游民
帖 子:30
专家分:28
注 册:2015-7-18
收藏
得分:0 
回复 21楼 wmf2014
不知道为什么程序走到这里就走不下去了。

图片附件: 游客没有浏览图片的权限,请 登录注册
2016-01-06 14:47
快速回复:求解,为什么不能重新检测数字是否重复
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084297 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved