精华内容
下载资源
问答
  • 数字游戏 c语言实现 猜4位随机生成的数 每次给猜测提示直到猜对 包含程序流程图
  • 1.[文件] 测1.cpp~1KB 下载(74)//产生一个六的密码(包含大小写字母和数字),首为字母#include#include#includevoid main(){int i,num;char str[6];int seed=1;char ch[4]="abc";srand((unsigned)time(0));//用于...

    在VC++上编译成功了。

    1.[文件] 测1.cpp ~ 1KB     下载(74)

    //产生一个六位的密码(包含大小写字母和数字),首位为字母

    #include

    #include

    #include

    void main()

    {

    int i,num;

    char str[6];

    int seed=1;

    char ch[4]="abc";

    srand((unsigned)time(0));//用于产生动态seed,使每次产生的随机密码都不同

    gl:

    num=rand()%2;

    switch(ch[num])

    {

    case 'a':

    g1:

    num=rand()%123;

    if(num>96&&num<123)

    str[0]=num;

    else

    goto g1;

    break;

    case 'b':

    g2:

    num=rand()%91;

    if(num>64&&num<91)

    str[0]=num;

    else

    goto g2;

    break;

    default :

    goto gl;

    break;

    }

    for(i=1;i<6;i++)

    {

    ll:

    num=rand()%4;

    switch(ch[num])

    {

    case 'a':

    l1:

    num=rand()%123;

    if(num>96&&num<123)

    str[i]=num;

    else

    goto l1;

    break;

    case 'b':

    l2:

    num=rand()%91;

    if(num>64&&num<91)

    str[i]=num;

    else

    goto l2;

    break;

    case 'c':

    l3:

    num=rand()%57;

    if(num>47&&num<58)

    str[i]=num;

    else

    goto l3;

    break;

    default :

    goto ll;

    break;

    }

    }

    printf("随机生成的六位密码为:\n");

    for(i=0;i<6;i++)

    printf("%c",str[i]);

    printf("\n");

    getchar();

    }

    展开全文
  • 请设计 一个密码生成器,要求随机生成4组10密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include<stdio.h> #include<time.h> #include...

    请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码.

     

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

    int getchar();
    void test(int array[]);

    int main(){
        
        int data[4][10];
        
        for(int i = 0;i < 4;i++){
            
            for(int j = 0;j < 10;j++){
                
                if(j == 9){
                    
                    test(data[i]);
                    
                }else{
                    
                    data[i][j] = getchar();
                }
            }
        }
        
        for(int i = 0;i < 4;i++){
            
            for(int j = 0;j < 10;j++){
                
                printf("%c ",data[i][j]);
            }
            printf("\n");
        }
        
        return 0;
    }

    void test(int array[]){
        
        int state = 0;
        
        for(int i = 0;i < 9;i++){
            
            if(array[i] >=5 && array[i] <= 90){
                
                state = 1;
            }
        }
        
        if(state){
            
            array[9] = getchar();
            
        }else{
            
            array[9] =  rand()%26 + 65;
        }
    }

    int getchar(){
        
        int model;
        int sign;
        model = rand()%3;
        
        if(model == 0){
            
            sign = rand()%10;
            sign = sign + 48;
            
        }else if(model == 1){
            
            sign = rand()%26;
            sign = sign + 65;
            
        }else{
            
            sign = rand()%26;
            sign = sign + 97;
        }
        
        return sign;
    }

    展开全文
  • 请设计 一个密码生成器,要求随机生成4组10密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码.#include#include#includeint getchar();void test(int array[]);...

    请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码.

    #include

    #include

    #include

    int getchar();

    void test(int array[]);

    int main(){

    int data[4][10];

    for(int i = 0;i < 4;i++){

    for(int j = 0;j < 10;j++){

    if(j == 9){

    test(data[i]);

    }else{

    data[i][j] = getchar();

    }

    }

    }

    for(int i = 0;i < 4;i++){

    for(int j = 0;j < 10;j++){

    printf("%c ",data[i][j]);

    }

    printf("

    ");

    }

    return 0;

    }

    void test(int array[]){

    int state = 0;

    for(int i = 0;i < 9;i++){

    if(array[i] >=5 && array[i] <= 90){

    state = 1;

    }

    }

    if(state){

    array[9] = getchar();

    }else{

    array[9] =  rand()%26 + 65;

    }

    }

    int getchar(){

    int model;

    int sign;

    model = rand()%3;

    if(model == 0){

    sign = rand()%10;

    sign = sign + 48;

    }else if(model == 1){

    sign = rand()%26;

    sign = sign + 65;

    }else{

    sign = rand()%26;

    sign = sign + 97;

    }

    return sign;

    }

    f37fd13abf76f5e8e12da8e89feac6d1.png

    展开全文
  • 利用时间生成随机数字符串 利用时间(按照一定格式)生成一个随机的字符串。 第0开始, 第0、1、2、3…是产生的随机数(216进制); 第3、5、7、9后面都是一个 -连接; 第6,是十六进制4开始的两数 第8...

    利用时间生成伪随机数字符串

    利用时间(按照一定格式)生成一个随机的字符串。

    第0位开始,
    第0、1、2、3…是产生的随机数(2位16进制);

    第3、5、7、9位后面都是一个 -连接;

    第6位,是十六进制4开始的两位数

    第8位 是 “89ab” 中的一个字符 和 15以下的随机数(十六进制)

    1、功能demo

    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    #include <string.h>
    
    //%02X表示输出的16进制使用两个位置,如果只有一位的前面添0,比如15就输出0F
    
    //依据时间(微秒)生成伪随机数seed(种子)
    unsigned int getstimeval(){
        unsigned int us;
        struct timeval tv;
        gettimeofday(&tv, NULL);
        us = (int)tv.tv_usec;
        printf("us %d\n", us);
        return us;
    }
    
    // 生成一个id的字符串,内部malloc,外部使用者释放
    char* _cae_random_str(void)
    {
        srand(getstimeval());//生成随机数
    
        char *buf = calloc(1, sizeof(char)*37); //申请内存空间,将生成的字符串”传出去“
        if (!buf) {
            printf("malloc buf is failed!!\n\n");
            return NULL;
        }
    
        char *str = buf; //将指针指向申请的首地址
        char *c = "89ab"; //第8位备用数据
        int n;
    
        for (n = 0; n < 16; n++) {
            int b = rand()%255;
            switch (n) {
                case 6:
                    sprintf(str, "4%x", b%15 );
                    break;
                case 8:
                    sprintf(str, "%c%x", c[rand()%strlen(c)], b%15 );
                    break;
                default:
                    sprintf(str, "%02x", b);
                    printf("[n%d] %s\n", n, str);
                    break;
            }
            
            str += 2; //指针移动,存放数据
            switch (n) {
                case 3:
                case 5:
                case 7:
                case 9:
                    *str++ = '-';  //运算符优先级
                    break;
            }
        }
        return buf;  //返回malloc内容的首地址,(指针str已经不是收地址了)
    }
    
    int main(int argc, const char * argv[]) {
        char cs[37];
        char *c = cs;
        c = _cae_random_str();
        printf("c:%s\n",c);
        // c = _cae_random_str();
        // printf("c:%s\n",c);
        // c = _cae_random_str();
        // printf("c:%s\n",c);
        free(c);
        return 0;
    }
    
    

    运行结果:

    baoshaohua:gdb bao$ ./test 
    us 512063
    [n0] ee
    [n1] 48
    [n2] 69
    [n3] 6e
    [n4] b4
    [n5] 9c
    [n7] 3e
    [n9] 60
    [n10] 3b
    [n11] 86
    [n12] 73
    [n13] 60
    [n14] 3d
    [n15] ab
    c:ee48696e-b49c-443e-8060-3b8673603dab
    
    • 1、申请内存(malloc)存放数据,loacal空间是不会把数据传出去的。
    • 2、指针移动存放数据;
    • 3、不同需求的伪随机数;

    2、gettimeofday

    #include <stdio.h>
    #include <sys/time.h>
    
    /**
     * @brief 
     *  #include <sys/time.h>
     * 
     * 
     *  int gettimeofday(struct timeval * tv, struct timezone * tz)
     * 
     *  gettimeofday () 会把目前的时间放到 tv 所指的结构返回,当地时区 的信息则放到 tz 所指的结构中。
     *  
     * struct timeval {
     *          time_t       tv_sec;   // seconds since Jan. 1, 1970 
     *          suseconds_t  tv_usec;  // and microseconds 
     *    };
     *
     */
    
    int main(int argc, char *argv[]) {
        
        struct timeval tv;
        struct timezone tz;
    
    	
    	//这段代码是为了和gettimeof比较
        time_t * tloc;
        int sec = time((time_t *)tloc);
        printf("\n%d\n\n", sec);
    
    
        gettimeofday(&tv, NULL); 
    	 printf("\n\n%ld\n\n", tv.tv_sec);
        
        
        return 0;
    }
    

    运行结果:

    baoshaohua:test bao$ gcc -o gettimeofday gettimeofday.c 
    baoshaohua:test bao$ ./gettimeofday 
    
    1585215191
    
    
    
    1585215191
    
    
    • struct timeval这个结构体的格式我不能确定,代码里面的应该是下面这个结构体,
      但是我man gettimeofday获取到的是代码里面注释中那样。
    struct timeval{
    	long tv_sec; /*秒*/
    	long tv_usec;/*微秒*/
    };
    
    • 如果你这样声明 struct timeval *tv ,编译的时候没有问题,但是运行的时候会报一个段错误。

    • 这个 tv_sec 就是从 1970-1-1 0:0:0 到现在的秒数。

    3、rand 、 srand

    #include <stdio.h>
    #include <stdlib.h>
    
    /**
     *  #include <stdlib.h>
     * 
     *  int rand(void);
     *  函数的作用是:计算一个从0到RAND_MAX范围内的伪随机整数序列...
     *  产生随机值,从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。
     *  
     *  void srand(unsigned seed);
     *  函数的作用是:将参数seed设置为新伪随机数序列的seed, 由rand()返回。通过调用具有相同种子值的srand(),可以重复这些序列。
     *             如果没有提供种子值,函数将自动种子值为1。
     */
    
    int main(int argc, char *argv[]){
        //rand
        int num = 0;
    
        for(int i = 0; i < 10; i++){
            num = rand();
            printf("%d  ", num);
        }
    
        printf("\n\n");
    
        return 0;
    }
    
    

    运行结果:

    baoshaohua:gdb bao$ ./srand 
    16807  282475249  1622650073  984943658  1144108930  470211272  101027544  1457850878  1458777923  2007237709  
    
    baoshaohua:gdb bao$ 
    

    重复执行多次。运行结果都是这样的。(因为seed不变,又是伪随机,所以每次生成的值都是一样的。)

    也就是说,只要程序编译运行后,这个随机数的伪序列就是固定的了。

    当然,通过 取余 也是可以产生一定范围内的伪随机数的,但是,每次还是固定的。

    参数seed是rand()的种子,用来初始化rand()的起始值。
    可以认为rand()在每次被调用的时候,它会查看:
    1) 如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用srand(seed)一次来初始化它的起始值。
    2) 如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)一次。

    到这里我们也就明白了,这两个函数的作用。

    • 如果每次 seed 都设相同值,rand()所产生的随机数值 每次就会一样。

    • 所以,要模拟随机,就要每次改变seed(种子)。

    欢迎关注公众号:
    公众号

    展开全文
  • 请设计 一个密码生成器,要求随机生成4组10密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码.#include#include#includeint getchar();void test(int array[]);...
  • C语言 新奇版 猜数字

    2017-08-29 09:46:58
    //生成不重复的M全部数据,存在数组a中,并打乱,备用 int gen(int* a) { int count=0,i,j; int max=1; for(i=0;i;++i,max*=10); for(i=0;i;++i) { _Bool flag[10]={0}; int t=i; for(j=0;j;++j)...
  • C语言数字游戏

    2016-10-15 13:41:00
    数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手。 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h ... //4位数随机生成函数 void deal(int num,int b[]); //对用户...
  • 数字,计算机随机生成1个3或4位的十进制整数,各个数位上的数字各不相同,用户给出猜测,计算机回答XAYB(X个位置和数字猜中,Y个数字猜中但位置错误),重复用户猜计算机回答的过程,直到猜中为止(3A0B,4A0B)...
  • #define M 4 //猜几个数字 //交换 void swap(int*a,int*b) { int t=*a; *a=*b; *b=t; } //将数组随机打乱 void random_shuffle(int* a,int n) { int i; for(i=0;i;i++) { int x=rand()%n; int y=rand()...
  • c语言 整数链表排序

    2010-08-05 13:20:18
    整数链表排序的c源代码 说明:试按以下给出的排序算法为整数链表编写一个排序...2、 10个数字随机生成 3、 程序可读性好 ps:头文件#include<stdafx.h> 中包含 #include #include #include #include <stdlib.h>
  • 模拟文曲星上的猜数游戏,先由计算机随机生成一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB 其中,A前面的数字表示有几位数字不仅数字猜对了,而且位置也正确,B前面的数字表示有几位数字猜...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗? 1.11 extern在函数声明中是什么意思? ...
  • (29)某公司在传输数据过程中为了安全要对数据进行加密,若传递的是四位的整数,对其进行加密的规则为:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。...
  • 下载不后悔,带题带答案,为下一届学员造福。 1.简单档1题: 试按以下给出的排序算法为整数链表编写一个排序函数: 该算法是按表元键值的各位值进行排序。...2、 10个数字随机生成 3、 程序可读性好
  • o 2.2 64 机上的 64 类型是什么样的? o 2.3 怎样定义和声明全局变量和函数最好? o 2.4 extern 在函数声明中是什么意思? o 2.5 关键字 auto 到底有什么用途? o 2.6 我似乎不能成功定义一个链表。我试过 ...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中是什么...
  •  16.7 顺序文件存取和随机文件存取 301  16.7.1 ftell( )和rewind( )函数 301  16.7.2 fseek( )函数 303  16.8 检测文件尾 305  16.9 文件管理函数 307  16.9.1 删除文件 307  16.9.2 给文件重命名 ...
  • 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中是什么...
  • 你必须知道的495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    1.2 64 机上的64 类型是什么样的? . . . . . . . . . . . . . . . . 1 1.3 怎样定义和声明全局变量和函数最好? . . . . . . . . . . . . . . . 2 1.4 extern 在函数声明中是什么意思? . . . . . . . . . . . ...
  • 人机猜数字

    2017-02-20 13:14:13
    今天是大一下学期上课的第一天,学校给我们安排了c语言项目实训,...电脑随机生成1个4位数,这个数每一不为0,且都不相同,我们人输入1个4位数来猜,当猜到位置相同且数字相同 则A+1,当猜到位置不同但数字相同则B+
  • 2、能让用户输入自己的参数以及对各项数值的偏好,然后随机生成100男性100女性(包括用户在内。如果用为男性则为99男100女),数值全部随机但需满足题设限制。按照上述规则给出一个匹配结果呈现给用户。 3、若...
  • C++ Primer Plus 中文版 第4版 清晰版

    千次下载 热门讨论 2009-12-06 14:45:21
    13.8.1 编译器生成的成员函数 431 13.8.2 其他的类方法 432 13.8.3 公有继承的考虑因素 434 13.8.4 类函数小结 436 13.9 总结 436 13.10 复习题 437 13.11 编程练习 438 第14章 C++中的代码重用 ...
  • 本附录总结了正文中没有介绍的其他C++操作符,如按操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数。 附录G:STL方法和函数 本附录总结了STL容器方法和通用的STL算法函数。 附录H:精选读物和...
  • 本附录总结了正文中没有介绍的其他C++操作符,如按操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数。 附录G:STL方法和函数 本附录总结了STL容器方法和通用的STL算法函数。 附录H:精选读物和...
  • 本附录总结了正文中没有介绍的其他C++操作符,如按操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数。 附录G:STL方法和函数 本附录总结了STL容器方法和通用的STL算法函数。 附录H:精选读物和...
  • 本附录总结了正文中没有介绍的其他C++操作符,如按操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数。 附录G:STL方法和函数 本附录总结了STL容器方法和通用的STL算法函数。 附录H:精选读物和...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

c语言随机生成4位数字

c语言 订阅