A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include <stdio.h>
#include <stdlib.h>
int  panDuan(int arr[],int len,int suiJiShu);
int main(int argc, const char * argv[]) {

    //产生6个1-33之间的随机数并且不能重复;

    //定义数组接收产生的6个随机数
    int arr[6];

    //数组长度
    int len = sizeof(arr)/sizeof(int);

    //循环产生随机数并且判断是否重复
    for (int i = 0 ; i < len;) {
        //产生一个随机数
        int a = arc4random_uniform(33)+1;

        //这里定义一个函数用来返回  0  1  来判断数组中是否存在这个数
//        panDuan(arr, len, a);
        //判断这个随机数是否在数组中存在   存在就赋值,不存在就继续循环
        if (panDuan(arr, len, a)) {
            arr[i] = a;
            i++;
        }

    }
    //遍历数组

    for (int i = 0 ; i < len; i++) {
        printf("%d\t",arr[i]);
    }

    return 0;
}
int  panDuan(int arr[],int len,int suiJiShu){

    for (int i = 0 ; i < len; i++) {
        //如果存在相同的数字就返回一个0
        if (suiJiShu == arr[i]) {
            return 0;
        }
    }
    return 1;
}


8 个回复

倒序浏览
beautiful  赞
回复 使用道具 举报
学些了学习了
回复 使用道具 举报
嗯嗯,中了跟你分点~
回复 使用道具 举报
哈哈,学过不久,还是有实用性的.
回复 使用道具 举报
哎吆,不错哦!这个产生随机数的函数基础班没教过吧
回复 使用道具 举报
  可以哦,刚学习了  #include <stdlib>
                             int main( ) {
                                   

}
            随机数学会了 但还不会怎样去避免产生重复数的问题                    
回复 使用道具 举报
表示看不懂。。
回复 使用道具 举报
好厉害!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马