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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冬天的章鱼烧 中级黑马   /  2015-4-6 23:28  /  1898 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

花了不少时间才敲出来,分享给大家,感兴趣的可以看看
//0-10的随机数存到数组,不重复
#include <stdio.h>
#include <stdlib.h>
#define LENGTH 10

int main()
{
    //使用循环生成随机数
    //生成随机数后,判断数组中是否包含该数字
    //如果包含,忽略本次生成的随机数,重新生成
    //如果不包含,加到数组
    int temp,i=0;
    int nums[LENGTH];
N:
    for (; i <LENGTH; i++) {
        temp = arc4random_uniform(10);
        int count =0;
        if (i==0) {
            nums = temp;
            continue;
        }
        else
        do
        {
            for(int j=0;j<i;j++){
                if (temp ==nums[j]) {
                    goto N;
                }
                count++;
            }
        }while (count!=i);
        nums = temp;
    }

    for (int i =0; i<LENGTH; i++) {
        printf("%d ",nums);
    }
    printf("\n");

    return 0;
}

7 个回复

倒序浏览
这个程序你运行了?你程序中有这么一句:nums = temp,能行吗,=两边不是一个类型啊
回复 使用道具 举报
oucding 发表于 2015-4-7 15:00
这个程序你运行了?你程序中有这么一句:nums = temp,能行吗,=两边不是一个类型啊 ...

都是int,程序有写
回复 使用道具 举报

nums是int型的数组名,它代表的首元素的地址也就是等效于&nus[0],是个地址或者说是指针
回复 使用道具 举报
oucding 发表于 2015-4-8 08:44
nums是int型的数组名,它代表的首元素的地址也就是等效于&nus[0],是个地址或者说是指针 ...

恩,是的,同感,数组名表示的是其首元素的地址,而非其值,比较的话应该用nums[0]才对
回复 使用道具 举报
同感,你的代码有问题啊
回复 使用道具 举报
oucding 发表于 2015-4-8 08:44
nums是int型的数组名,它代表的首元素的地址也就是等效于&nus[0],是个地址或者说是指针 ...

是的,刚才仔细看了下,贴过来的文本少了个,:L
回复 使用道具 举报
冬天的章鱼烧 发表于 2015-4-8 22:11
是的,刚才仔细看了下,贴过来的文本少了个,

[ i ],,,,,,,被吞了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马