C语言随机函数

发布者:EtherealGrace最新更新时间:2015-05-11 来源: 51hei关键字:C语言  随机函数 手机看文章 扫描二维码
随时随地手机看文章
1.srand((unsigned)time(NULL));

2.int radio =rand() % 5 + 1;//radio 为随机 1~5的整数

系统随机函数,必须包含两个头文件,stdio.h,stdlib.h,time.h,。上面两行代码必须一起用,第一行是清空随机函数缓存。如果没有第一句,则每次得到的随机函数都是一样的。

 

例如,我们需要一个5位数的随机数,代码如下:

#include

#include

#include

int main(){

       intradio=0;

 

       chara[5]={''};

 

       inti=0;

       srand((unsigned)time(NULL));

 

       radio=rand()%5+1;

 

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

 

       {

 

              a[i]="qwertyuiop"[rand()%10];

 

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

 

       }

 

       printf("%d ",radio);

 

}

 

一般登录网站都必须输入验证码,验证码只是随机函数而已,比如说我们要得到一个5位数的字母数字组合的验证码;代码如下:

 

#include

 

#include

 

#include

 

#include

 

 

 

int main(){

 

       inti=0;

 

       charstr[10]="",str2[10]="";

 

      

 

       //验证码

 

       for(i=0;i<5;i++){

 

              srand((unsigned)time(NULL)+i); 

 

              str[i]="0123456789abcdefghihklmnopqrstuvwxyz"[rand()%36];

 

       }

 

       printf("验证码:%s",str);

 

       printf(" ");

 

       printf("输入验证码:");

 

       fgets(str2,10,stdin);

 

       str2[strlen(str2)-1]='';

 

       if(strcmp(str,str2)!=0){

 

              printf("验证码输入错误 ");

 

              return1;

 

       }

 

else

 

       printf("验证码输入正确 ");

 

}

 

 

 

str[i]="0123456789abcdefghihklmnopqrstuvwxyz"[rand()%36];

 

这行代码,双引号里面的数字大小写字母随便写,’%’后面的数字通常和前面的个数对应,也可以小于前面的个数,比如说就是n,那这样只有前n个字符有效,随机字符也会从前n个中输出。
更正:验证码一般不使用0,o,1,l,2,z,这六个字符,所以应该是 str[i]="3456789abcdefghihkmnpqrstuvwxy"[rand()%30];
多谢老李的提醒,以后多向你学习

关键字:C语言  随机函数 引用地址:C语言随机函数

上一篇:C语言写的简易水果管理系统
下一篇:单向链表应用函数

推荐阅读最新更新时间:2024-03-16 14:01

单片机C语言教程:附录3 运算符优先级和结合性
运算符优先级和结合性
[单片机]
单片机<font color='red'>C语言</font>教程:附录3 运算符优先级和结合性
Proteus仿真51单片机C语言-单片机向主机发送字符串
简介:单片机向主机发送字符串:单片机按一定的时间间隔向主机发送字符串,发送内容在虚拟终端显示。
[单片机]
Proteus仿真51单片机<font color='red'>C语言</font>-单片机向主机发送字符串
AVR C语言宏定义技巧(常用宏定义)
01: 防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 02: 重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolean value type. */ typedef unsigned long int uint32; /* Unsigned 32 bit value */ typedef unsigned short uint16; /* Unsigned 16 bit value */ typedef unsign
[单片机]
51单片机之C语言-4.5基本语句之循环语句
1.循环语句 while 循环结构是程序中一种很重要的结构。 while语句的一般形式为: while(表达式)语句 其中表达式是循环条件,语句为循环体。 while语句的语义是:计算表达式的值,当值为真(非零)时,执行循环体语句。其执行过程可用下图表示。 图4-5-1 while循环执行过程 while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。 2.循环语句 do-while do-while语句的一般形式为: do 语句 while(表达式) 其执行过程可用如下流程图表示, 这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为
[单片机]
51单片机之<font color='red'>C语言</font>-4.5基本语句之循环语句
PIC17CXX器件的C语言中断保存/恢复语句
// File name: int17cxx.h /* Interrupt context save and restore for P IC 17C42 PIC17C42A, PIC17C43, PIC17C44, PIC17C752, PIC17C756 __Wimage变量可能并不需要保存,该变量出现在所提供的延时程序中,用于计算指针/阵列地址。 FSR0寄存器也用于计算指针/阵列RAM的地址。 这些变量是否需要保存取决于代码的复杂程度。根据代码要求,可修改这些指令。 */ #pragma option -l #asm MACRO PUSH MOV FP ALUSTA, ALUSTA ;save fla
[单片机]
51单片机——SPI、DS1302时钟 C语言入门编程
SPI: 写时序: 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302, 数据输入从低位(位0)开始。(先写低位) 读时序: 在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。(先读低位,读取后将IO设置为0,否则读出的数据会出错) DS1302: DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态 RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM指示决定采用24或12小
[单片机]
51单片机——SPI、DS1302时钟 <font color='red'>C语言</font>入门编程
C语言和单片机C语言有何差异?
很多想入门单片机的同学都会先学习C语言再入门单片机,但是学着学着发现明明同样都是C语言,为什么单片机C语言和我当初学的C语言有差异呢? 单片机c语言相对于普通C语言增加了一些基本的指令,还有变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言非常基础部分。 主要的差异具体体现在: 1、单片机中C的语法一般都对 ANSI C有些扩展,及一些特殊写法如C51扩展的 data xdata bit sbit一类的,还有一些中断程序写法 void int() interrput 1一类的。 2、单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短、运行速度高、存储空间小、符合C
[单片机]
24LCxx读写EEPROM的实例(C语言)
//************************************************************************ //* Using I2C Master Mode for aCCess Slave (EEPRM) //* //* Written by: RIChard Yang //* Sr. Corporate Application Engineer //* MicroChip Technology Inc. //* Date: Oct. 3nd '2002 //* Revision: 1.00 //* Language tools :
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved