C中随机数编程

2012-11-30 12:11:06 · 作者: · 浏览: 323

    自己写着玩的,一个通过输入一个整形数字,来产生一串3个四位的10进制数字

    比如:./a.out 1000

    显示:1232 2512 0123(是这个形式,但是值不一定对,每次输入1000都会产生这个对应的数字)

    tips:

    sprintf(p+strlen(p),“%04d \n”,j);

    一、代表在p前移动stlen(p)个单位之后,再写入,即在字符串p的后面加入

    二、%04d  代表输出指定显示四位,不足补0

    ====================================================================================

    #include  <stdio.h>

    #include  <string.h>

    int random(unsigned int i,char *p)

    {

    unsigned int j;

    if(p == NULL){

    printf(“p must not be NULL\n”);

    return -1;

    }

    srand(i);

    j = rand()%10000;

    sprintf(p,“%04d \t”,j);

    i = i+j;

    srand(i);

    j = rand()%10000;

    sprintf(p+strlen(p),“%04d \t”,j);

    i = i+j;

    srand(i);

    j = rand()%10000;

    sprintf(p+strlen(p),“%04d \n”,j);

    puts(p);

    return 0;

    }

    int main(int argc, char *argv[])

    {

    unsigned int k;

    char buf[1024]={0};

    k = atoi(argv );

    random(k,(char *)&buf);

    puts(buf);

    return 0;

    }