精华内容
下载资源
问答
  • 请设计 一个密码生成器,要求随机生成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

    展开全文
  • c语言随机函数

    2021-01-13 16:13:14
    在大多数情况下,最好的方法是产生伪随机数,这不是真正意义的随机数,它的意义是:单次产生的数列是无法预测的,但是每次都会生成同样的一组随机数列。 C语言的标准函数库提供有一个随机数函数,即 rando()函数,它返回...

    1.初识随机函数

    在实践中,找到真正的随机数字是困难的。数字计算机只能在一个限定的范围内和有限的精度下去处理数字。在大多数情况下,最好的方法是产生伪随机数,这不是真正意义的随机数,它的意义是:单次产生的数列是无法预测的,但是每次都会生成同样的一组随机数列。
    C语言的标准函数库提供有一个随机数函数,即 rando()函数,它返回[0,MAX均匀分布的伪随机整数。rand()函数不接受参数,默认以1为种子(即起始值),它总是以相同的种子开始,所以形成的伪随机数列也相同,不是真正的随机。这是有意设计的,目的是为了便于程序的调试。
    另一个函数是 srand(),可以使用该函数指定不同的数(无符号整数)为种子。但是如果种子相同,么伪随机数列也相同。有两种方法可以采用:一种是让用户输入种子,但效果不是很理想;另一种比较想的是采用变化的数,常用时间来作为随机数生成器的种子。这样,种子不同,产生的随机数也就不同。
    在这里插入图片描述

    使用随机函数

    rand()函数没有参数,它返回一个从0到最大数之间的随机数。
    要生成一个[a,b]范围内的随机数,可以表示为:

    	int n=a+srand()%(b-a+1);
    

    在这里插入图片描述
    下面我就写个代码

    #include <stdio.h>
    #include <stdlib.h>//包含转换和存储头文件
    #include <time.h>//包含日期和时间处理头文件
    #define max 100
    
    int main() {
    	srand((unsigned)time(NULL));//随机数播种函数
    	for (int i = 0; i < 20; i++)//产生20个随机数
    		printf("%d\n", rand() % max);//设定随机数范围并输出
    }
    

    srand()函数的参数是一个带NUL参数的tmeO函数。NULL参数使tme0函数以秒为单位读取计算机内部时钟的时间,然后 srand()函数使这个时间初始化,rand()函数设定随机函数范围,也就是常说的产生一个以当前时间开始的随机种子。
    MAX为生成随机数范围的上限值,rand%MAX产生的随机数范围是[0,max-1]。
    在这里插入图片描述

    展开全文
  • 任务描述 经常看到彩迷们到彩票站去买彩票有些人是让工作人员打出自己选定的号有些人让工作人员打出一组机选彩票号今天就来做一个让电脑随机生成一组彩票号的程序假设采用22选5的方式从1至22个中随机产生5个 ...
  • 每次生成一个非零元的行与列之后,由键盘输入非零元的大小e;并将其先存入二维数组a[][]。 2、压缩矩阵至三元的算法思想:获得矩阵之后,将其压缩进三元表当中,三元的非零元个初始中为0,因在生成随机矩阵...

    稀疏矩阵压缩及转置

    1、随机数生成矩阵算法思想:使用time()函数给随机数播种,获得矩阵的总行数,总列数,非零元个数。总行数与总列数的值可直接存入三元组。每次生成一个非零元的行与列之后,由键盘输入非零元的大小e;并将其先存入二维数组a[][]。

    2、压缩矩阵至三元组的算法思想:获得矩阵之后,将其压缩进三元组表当中,三元组的非零元个数初始中为0,因在生成随机矩阵的过程中可能会出现相同的行、列,导致矩阵非零元被覆盖,所以具体的非零元个数以矩阵当中的为准。遍历矩阵,如果存在非零元,则将该元素的行标i与列标j,存入三元组,同时非零元个数+1。

    3、打印矩阵的算法思想:先打印每一行的元素,如果i,j与三元组表里的i,j相匹配,则打印元素,否则打印0。

    4、三元组快速转置的算法思想:求得被转置矩阵M的每一列的非零元个数,进而求得每一列的第一个非零元在T.data中应有的位置,故需要两个辅助向量:num与copt。先使T.mu=M.nu、T.nu=M.mu、T.tu=M.tu。如果T.tu不等于0,则先求每一列中的非零元个数num[col],col从1到M.nu;再求位置copt[col],copt[col]=copt[col-1]+num[col-1] ,col从2到M.nu,copt[1]=1;最后进行转置操作,令M的i,j互换,每次互换一个元素则++copt[col]。

    5、具体实现代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #define MAXSIZE 200
    #define OK 1
    #define FALSE 0
    #define OVERFLOW -2
    #define ERROR 0
    typedef int Status;
    typedef int ElemType; 
    
    typedef struct
    {
        int i,j;
        ElemType e;
    }Triple;
    
    typedef struct
    {
        Triple data[MAXSIZE+1];
        int mu,nu,tu;
    }TSMatrix;
    
    Status CreateMatrix(TSMatrix *M)
    {
        int i,j,n,k;       //行,列,非零元个数
        int a[50][50]={0};   //存放矩阵,初始值为0 
        ElemType e;
        printf("本次稀疏矩阵的行数与列数均由随机数产生!\n");
        srand((unsigned)time(NULL) + (unsigned)rand());  //以time()为种子生成随机数
        (*M).mu=rand()%10+6;   //随机行大小,取余是确定范围,mu在(6~15)之间
        (*M).nu=rand()%10+7;   //随机列大小
        k=rand()%10+6;   //随机非零元个数
        printf("该稀疏矩阵的行数为%d,列数为%d,非零元个数为%d。",(*M).mu,(*M).nu,k);
        (*M).data[0].i=0;
    	for(n = 1; n <= k; n++)   //生成随机数矩阵
    	{
            i=rand()%(*M).mu+1;
            j=rand()%(*M).nu+1;
    		printf("请按行序输入第 %d 个非零元素,行%d,列%d,元素值:\n",n,i,j);
    		scanf("%d",&e);
            a[i][j]=e;
        }
        (*M).tu=1;
        for(i=1;i<=(*M).mu;i++)  //以行为主序存入三元组
        {
            for(j=1;j<=(*M).nu;j++)
            {
                if(a[i][j]!=0)
                {
                    (*M).data[M->tu].i = i;	//行下标
    		        (*M).data[M->tu].j = j;	//列下标
    		        (*M).data[M->tu].e = a[i][j];	//该下标所对应的值
                    M->tu++;
                }
            }
        }
        M->tu--;
    	return OK;
    }
    
    Status PrintMatrix(TSMatrix M)
    {
        int i,j,n=1;
        printf("\n\n");
        for(i=1;i<=M.mu;i++)
        {
            for(j=1;j<=M.nu;j++)
            {
                if(M.data[n].i==i&&M.data[n].j==j)
                {
                    printf("%4d",M.data[n].e);
                    n++;
                }
                else
                    printf("%4d",0);
            }
            printf("\n");
        }
        return OK;
    }
    
    Status FastTransposeSMatrix(TSMatrix M,TSMatrix *T)
    {
        int col,t,p,q;
        int *num,*copt;
        num=(int*)malloc((M.nu+1)*sizeof(int));  //给num分配内存空间;大小为M的列数+1,num[1]开始
        copt=(int*)malloc((M.nu+1)*sizeof(int));  //copt表示该列的第一个非零元在T.data中的位置,copt大小与num相等
        T->mu=M.nu; T->nu=M.mu; T->tu=M.tu;  //T的行数等于M的列数,列数等于行数,非零元个数相等
        if(T->tu)  //非空
        {
            for(col=1;col<=M.nu;++col)
                num[col]=0;  //清零操作
            for(t=1;t<=M.tu;++t)
                ++num[M.data[t].j];    //求M中每一列含非零元个数
            copt[1]=1;  //M的第一列的第一个非零元在T的第一个位置
            for(col=2;col<=M.nu;++col)
                copt[col]=copt[col-1]+num[col-1];  //累加操作,比较复杂,求每一列的第一个非零元在T.data中的位置
            for(p=1;p<=M.tu;++p)
            {  
                col=M.data[p].j; q=copt[col]; 
                T->data[q].i=M.data[p].j;  //转置操作
                T->data[q].j=M.data[p].i;
                T->data[q].e=M.data[p].e;
                ++copt[col];  //位置已用,计数加一
            }
        }
        return OK;
    }
    
    void main()
    {
        TSMatrix M,T;  
        CreateMatrix(&M);
        printf("原始矩阵如下:\n");
        PrintMatrix(M);  //打印M
        FastTransposeSMatrix(M,&T);
        printf("转置矩阵如下:\n");
        PrintMatrix(T);  //打印T
    }
    
    

    6、粉丝数上50,下次加上流程图,创作不易,谢谢支持。

    展开全文
  • c语言 rand() 随机函数

    2018-04-12 19:23:00
    各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀分布。 c的标准函数库提供一随机数生成器rand(定义在stdlib.h),能返回0~RAND_MAX...
  • 功能描述:程序自动生成.txt文件,内部存放生成的数据,其中第行存储数据的条n,从第二行开始存储随机生成的三元数据,共n条。条n和文件名通过cmd中命令行参数传入,两参数顺序不定,缺少参数时,条n随机...
  • 功能描述:程序自动生成.txt文件,内部存放生成的数据,其中第行存储数据的条n,从第二行开始存储随机生成的三元数据,共n条。条参数n和文件名称参数FileName通过cmd中的命令行参数传入,两参数顺序不定,...
  • C语言

    2018-11-13 21:39:19
    ZN 想在学校中请一些同学一起做项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1 到 1000 之间的随机整数(N≤100),对于其中重复的数字,只保留个,把其余相同的去掉,不同的对应着不同的学生的...
  • C语言猜数字游戏(1-100)

    千次阅读 2019-03-26 00:05:48
    计算机的随机数是通过算法返回一组看起来随机的数列 称为 伪随机数 计算机生成随机数依赖数学变化,需要初始值 初始值就是随机种子 如果初始值是固定的那么生成的数字也就是随机的. 一个随机种子对应一组序列 计算机...
  • 由电脑随机生成数,再由电脑猜,新奇版的猜数字游戏,用几A几B表示位置和数正确与否,尽量用最少的步猜出来。 要步最少的,可以帮我把每步的意思注释一下,谢谢各位大神。 前面代码已经给出,只需补全int ...
  • 利用rand()来随机生成5个数字,模拟抽牌; 顺子即公差为1的等差数列,可以利用等差数列的性质来判断。 具体实现: 、生成随机数 利用rand()生成的随机数对13取余并加1来保证每次生成的随机数在1到13之间 ...
  • 各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀分布。 C的标准函数库提供一随机数生成器rand(定义在stdlib.h),能返回0~RAND_MAX...
  • c语言链表

    2015-04-14 07:48:15
    还有就是随机生成一组数,然后排序;真是丢,回来花了几个小时重新好好的编了一个单链表。 #include #include #include typedef struct list { int data; struct lsit *next; }List; void init_list(List *...
  • C语言基础题

    2021-04-22 06:56:57
    明明想在学校中请一些同学一起做项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留个,把其余相同的去掉,不同的对应着不同的学生的学号。...
  •   猜数字游戏,简单来说,就是在给定的一组数的范围内猜出提前设定好的数。那么,怎样提高我们的查找效率呢?简而言之,就是靠 “蒙”,但是呢,这个“蒙”也是需要技巧的,而我们所熟知的二分查找便是猜数字游戏...
  • 明明想在学校中请一些同学一起做项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1 到 1000 之间的随机整数(N≤100),对于其中重复的数字,只保留个,把其余相同的去掉,不同的对应着不同的学生的...
  • 学习、实验记录,也是方便自己以后查找 目录实现思路C语言,使用char数组C语言,使用char*C++方式使用string类 实现思路 C、C++使用同一种思路,只是使用的数据结构不一样...一组随机产生0,1,产生0,用’a’来和.
  • 根号n分治排序的C语言实现: 算法课的这样一道题目 ...首先随机生成一个数组,把数组和一个临时存放数据的数组传入函数RadicalSort()并且传入数组的头位置和尾位置 RadicalSort()函数中在头位置小于尾位置...
  • 这个版本生成一随机整数数组,并在bubbleSort算法中打印每次通过,以使其步骤非常清晰。 使用它包括拉出存储库并进入C目录。 在这里,您将找到一个已经完成所有设置的Makefile,因此您需要做的是以下操作: // ...
  • 小明和他的好朋友小西在玩一个游戏,由电脑随机生成一个由-2,0,2三个组成的数组,并且约定,谁先算出这个数组中某一段连续元素的积的最大值,就算谁赢! 比如我们有如下随机数组: 2 2 0 -2 0 2 2 -2 -2 0 ...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.18 我有这样一组声明:typedefchar*charp;constcharpp;为什么是p而不是它指向的字符为const? 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?constintn=5;inta[n]; 1.20 constchar*p、char...
  • 运行程序先输入一个,为数的长度,代码会随机生成一个数组,然后分贝用选择排序和冒泡排序实现从小到大的排序. 实验结果: 代码: #include <iostream> #include <cstdlib> #include <ctime>...
  • C语言的科学和艺术.pdf

    热门讨论 2012-01-19 14:09:05
    8.2.3 ansi c中生成随机数 205 8.2.4 改变随机数的范围 206 8.2.5 将此问题通用化 210 8.3 在库中保存工具 212 8.3.1 接口的内容 212 8.3.2 写random.h接口 213 8.3.3 random.c的实现 214 8.3.4 构造客户...
  • 巧妙的 排序+去重——C语言

    千次阅读 2019-05-24 14:57:05
    明明想在学校中请一些同学一起做项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留个,把其余相同的去掉,不同的对应着不同的学生的学号...
  • C语言小练习——买彩票中大奖

    千次阅读 2018-08-05 21:19:50
    彩票程序在后台随机生成1~35内的7个各不相同的数字。用户会输入一组7个数字, 中奖规则:   猜中 7个500万 6个100万 5个1万 4个5000 3个500 0,1,2个没中奖 输出是否中奖及奖金。 代码段: #...
  • o 3.16 枚举和一组预处理的 #define 有什么不同? o 3.17 有什么容易的显示枚举值符号的方法? * 4. 表达式 o 4.1 为什么这样的代码: a[i] = i++; 不能工作? o 4.2 使用我的编译器,下面的代码 int i=7; ...
  • 为了保证打分的客观性和公正性,导演给每个评委从1到N进行了编号, 先用计算机生成了K个1到N之间的随机整数,对于其中重复的数字,只保留个,把其余相同的去掉,不同的对应着不同的评委编号。然后再把这些...

空空如也

空空如也

1 2 3 4
收藏数 79
精华内容 31
热门标签
关键字:

c语言随机生成一组数

c语言 订阅