| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2138 人关注过本帖
标题:如何使用随机数生成一组互不相等的数
只看楼主 加入收藏
st3624
Rank: 1
等 级:新手上路
帖 子:27
专家分:3
注 册:2015-11-18
收藏
得分:0 
回复 10楼 wp231957
这个代码我看懂了,但是我发现前提还是main函数里面存在了一个定义好的数组,test函数的作用是把这个数组里的数换个位置,然后我一直想知道的是,假如main函数里的数组是没有定义的,然后是否可以创个函数,把main函数里的数组定义了。。(我还是个菜鸟,说的可能很难理解,不好理解的话就算了,我干脆不用函数了)
下面是我现在的代码,也许看了就明白我的意思了
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int shuzu(int *);
int main(void){
    int g[4][4], i, j;   (这个数组g是空的,我没定义)
    shuzu(&g[0][0]);
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            printf("%d\n", g[i][j]);

        }
    }


}

int shuzu(int * q,int len ){
    int i, j, k, l, m = 0, p = 0, n = 0, z, x, a[4][4], b[8] = { 0 };
    srand(time(NULL));
    for (k = 0; k < 8; k++)
    {

        b[k] = rand() % 30 + 1;

        int jihao = 1;
        while (jihao == 1){
            for (l = 0; l < k; l++)
            {
                if (b[k] == b[l])
                    break;
            }
            if (l < k)
            {
                b[k] = rand() % 9 + 1;
            }
            if (l == k)
                jihao = 0;
        }



    }
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 4; j++)
        {
            a[i][j] = b[m];

            m = m + 1;
        }
    }
    for (i = 2; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            a[i][j] = b[n];

            n = n + 1;
        }
    }                (这里得到了一个4*4的二维数组,我想把这个数组放到main函数里的g里用)
                     (之所以用函数主要是因为这里用了太多字母了,全放到main函数里看着麻烦)
    *q = a[i][j];
    return 0;
}
2015-11-18 17:07
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
再给你一段演示代码  至于是否有必要在主函数中开辟一个新的数组  完全取决于你的设计

程序代码:
#include<stdio.h>

#define n 7

void test(int * s,int len,int * dest)
{
    while(len>0) *(dest++)=*(s+(--len));
}

int main()
{
    int k[n]={1,2,3,4,5,6,7};
    int dest[n]={0};
    test(k,n,dest);
    for(int i=0;i<n;i++) printf("%3d",dest[i]);
    printf("\nnext continue......\n");
    return 0;
}


DO IT YOURSELF !
2015-11-19 08:19
快速回复:如何使用随机数生成一组互不相等的数
数据加载中...
 
   



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

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