优质c随机生成四位数范文模板 15页.docx
- 文档编号:25055486
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:15
- 大小:21.19KB
优质c随机生成四位数范文模板 15页.docx
《优质c随机生成四位数范文模板 15页.docx》由会员分享,可在线阅读,更多相关《优质c随机生成四位数范文模板 15页.docx(15页珍藏版)》请在冰豆网上搜索。
优质c随机生成四位数范文模板15页
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
==本文为word格式,下载后可方便编辑和修改!
==
c随机生成四位数
篇一:
在EXCEL中生成随机数
求教:
我的电子表格中rand()函数的取值范围是-1到1,如何改回1到0
回答:
有两种修改办法:
是[1-rand()]/2,
或[1+rand()]/2。
效果是一样的,都可生成0到1之间的随机数
电子表格中RAND()函数的取值范围是0到1,公式如下:
=RAND()
如果取值范围是1到2,公式如下:
=RAND()*(2-1)+1
RAND()
注解:
若要生成a与b之间的随机实数:
=RAND()*(b-a)+a
如果要使用函数RAND生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,保持编辑状态,然后按F9,将公式永久性地改为随机数。
示例
RAND()介于0到1之间的一个随机数(变量)
=RAND()*100大于等于0但小于100的一个随机数(变量)
excel产生60-70随机数公式
=RAND()*10+60
要取整可以用=int(RAND()*10+60)
我想用excel在B1单元个里创建一个50-80的随机数且这个随机数要大于A1单元个里的数值,请教大家如何编写公式!
整数:
=ROUND(RAND()*(80-MAX(50,A1+1))+MAX(50,A1+1),0)
无需取整数:
=RAND()*(80-MAX(50,A1))+MAX(50,A1)
要求:
1,小数保留0.1
2,1000-1100范围
3,不要出现重复
=LEFT(RAND()*100+1000,6)至于不许重复
你可以设置数据有效性
在数据-有效性设
=countif(a:
a,a1)=1
选中a列设有效性就好了
其他列耶可以
急求excel随机生成数字的公式,取值要在38.90-44.03之间,不允许重复出现,保留两位小数,不允许变藏
=round(RAND()*5+38.9,2)
公式下拉
Excel随机数
Excel具有强大的函数功能,使用Excel函数,可以轻松在Excel表格产生一系列随机数。
1、产生一个小于100的两位数的整数,输入公式=ROUNDUP(RAND()*100,0)。
RAND()这是一个随机函数,它的返回值是一个大于0且小于1的随机小数。
ROUNDUP函数是向上舍入数字,公式的意义就是将小数向上舍入到最接近的整数,再扩大100倍。
2、产生一个四位数N到M的随机数,输入公式=INT(RAND()*(M-N+1))+N。
这个公式中,INT函数是将数值向下取整为最接近的整数;因为四位数的随机数就是指从1000到9999之间的任一随机数,所以M为9999,N为1000。
RAND()的值是一个大于0且小于1的随机小数,M-N+1是9000,乘以这个数就是将RAND()的值对其放大,用INT函数取整后,再加上1000就可以得到这个范围内的随机数。
[公式=INT(RAND()*(9999-1000+1))+1000]
3、Excel函数RANDBETWEEN是返回位于两个指定数之间的一个随机数。
使用这一个函数来完成上面的问题就更为简单了。
要使用这个函数,可能出现函数不可用,并返回错误值#NAME?
。
选择"工具"菜单,单击"加载宏",在"可用加载宏"列表中,勾选"分析工具库",再单击"确定"。
接下来系统将会安装并加载,可能会弹出提示需要安装源,也就是office安装盘。
放入光盘,点击"确定",完成安装。
现在可以在单元格输入公式=RANDBETWEEN(1000,9999)。
最后,你可以将公式复制到所有需要产生随机数的单元格,每一次打开工作表,数据都会自动随机更新。
在打开的工作表,也可以执行功能键F9,每按下一次,数据就会自动随机更新了。
用Excel随机函数rand()生成随机数和随机字母
以前使用Excel的随机数函数,生成过固定位数的数字卡的卡号和密码,效果还是蛮好的!
现在又有新的需求了,那就是要生成随机字母!
为了避免每次有新的需求都要重新写日志,干脆一起写出来吧!
1、生成随机数字
(1)生成随机数比较简单,=rand()即可生成0-1之间的随机数;
(2)如果要是整数,就用=int(rand())*10,表示0至9的整数,以此类推;
(3)如果要生成a与b之间的随机实数,就用=rand()*(b-a)+a,如果是要整数就用=int(rand()*(b-a))+a;稍微扩充一下
,就能产生固定位数的整数了。
注意:
如果要使用函数rand()生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=rand()”,保持编辑状态,然后按F9,将公式永久性地改为随机数。
不过,这样只能一个一个的永久性更改,如果数字比较多,也可以全部选择之后,另外选择一个合适的位置粘贴,粘贴的方法是点击右键,选择“选择性粘贴”,然后选择“数值”,即可将之前复制的随机数公式产生的数值(而不是公式)复制下来!
2、产生随机字母
随机小写字母:
=CHAR(INT(RAND()*26)+97)
随机大写字母:
=CHAR(INT(RAND()*26)+65)
随机大小写混合字母:
=CHAR(INT(RAND()*26)+if(INT(RAND()*2)=0,65,97))
3、产生随机的六位数的字母和数字混合
=CONCATENATE(IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*
2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*
2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND
()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))))
4、随机不重复数字序列的生成方法
有些情形下,我们需要生成一个不重复的随机序列。
比如:
我们要模拟洗牌,将一副扑克牌去掉大小怪后剩下的52张打乱。
比较笨的方法是在1-52间每生成一个随机数后,检查该随机数是否出现过,如果是第一次出现,就放到序列里,否则重新生成一个随机数作检查。
在excelworksheet里面用这种办法,会造成if多层嵌套,不胜其烦,在VBA里面做简单一些,但是效率太差,越到序列的后端,效率越差。
当然也有比较好的办法,在VBA里面,将a
(1)-a(52)分别赋予1-52,然后做52次循环,例如,第s次生成一个1-52间的随机数r,将a(s)与a(r)互换,这样的话,就打乱了原有序列,得到一个不重复的随机序列。
VBA里这个算法是很容易实现的,但是,出于通用性和安全考虑,有的时候我们并不希望用VBA,我们来看看在worksheet里面如何利用内置函数实现这个功能。
(1)在A1-A52间填入"=INT(RAND()*52)+1",产生1-52间的随机数,注意这里是有重复的
(2)在B1-B52间填入1-52
(3)在C54-BB54填入1-52
(4)在C1填入
"=IF(ROW()=C$54,INDEX(B$1:
B$52,INDEX($A$1:
$A$52,C$54)),IF(ROW()=INDEX($A$1:
$A$52,C$54),INDEX(B$1:
B$52,C$54),B1))"。
分项解释:
a:
ROW()=C$54,如果当前行等于当前交换所排的序号
b:
INDEX(B$1:
B$52,INDEX($A$1:
$A$52,C$54)),返回在B1到B52中选择A1:
A52中的第C54个值
c:
IF(ROW()=INDEX($A$1:
$A$52,C$54),否则的话,如果当前行等于A1:
A52中第C54个值,则:
d:
INDEX(B$1:
B$52,C$54),返回B1:
B52中的第C54个值
e:
若以上条件都不满足,则返回B1
(5)将C1复制到C1:
BA52这个区域里面
(6)在BA1:
BA52中,我们就得到了一个不重复的随机序列,按F9可以生成一个新序列
如何在EXCEL中生成随机数
RAND
返回大于等于0及小于1的均匀分布随机数,每次计算工作表时都将返回一个新的数值。
语法:
RAND()
说明:
若要生成a与b之间的随机实数,请使用:
RAND()*(b-a)+a
如果要生成整数,则输入:
=INT(RAND()*(b-a)+a)
如果要使用函数RAND生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,
保持编辑状态,然后按F9,将公式永久性地改为随机数。
如果您将示例复制到空白工作表中,可能会更易于理解该示例。
操作方法
创建空白工作簿或工作表。
请在“帮助”主题中选取示例。
不要选取行或列标题。
从帮助中选取示例。
按Ctrl+C。
在工作表中,选中单元格A1,再按Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。
1
2
3
AB
公式说明(结果)
=RAND()介于0到1之间的一个随机数(变量)
=RAND()*100大于等于0但小于100的一个随机数(变量)
如果只要显示重复的数据,可以使用条件格式来显示:
选定AB列,点"格式"->"条件格式",将条件1设为:
公式=COUNTIF($A:
$B,A1)>1
点"格式"->"字体"->"颜色",选中红色,点两次"确定".
用条件格式
选中A列,格式-条件格式,条件选择公式,并输入公式:
=COUNTIF(A:
A,A1)>1,格式按钮,设置字体颜色或背景(图案)颜色。
篇二:
c语言四位数加密传输实验
#include
#defineTRUE1
#defineFALSE0
intmain()
{
intcoding(intx);//加密函数的声明
intx;//要输入的四位整数
inty;//要输入的六位密码
do
{
printf("请输入四位整数:
");
scanf("%d",&x);
if((x>9999)||(x<1000))
{
printf("输入不正确,请重新输入!
\n");
}
else
{
break;
}
}
while(TRUE);
x=coding(x);
printf("加密后的结果为:
%d\n",x);
do
{
printf("请输入六位密码:
");
scanf("%d",&y);
if(y==123456)//123456就是密码
{
break;//密码正确就突出do-while循环
}
else
{
printf("密码不正确,请重新输入!
\n");
}
}
while(TRUE);
x=coding(x);
printf("解密后,显示原始输入的四位整数:
%d\n",x);
}
//加密
intcoding(intx)
{
inty,z;
z=((x/1000)+5)%10;//x除以1000商就是千位,加5,除以10取余数得z作为个位,相
//当于和千位放到个位位置上
y=x%1000;//去掉原数的千位后赋值给y
z+=(((y/100)+5)%10)*10;//同理y除以100得到百位,加上5,除以10取余数,
//再乘以10,作为十位,相当于百位放到十位的位置上
y=y%100;//去掉百位
z+=(((y/10)+5)%10)*100;/*十位加5取10的模,乘上100,作为百位,相当于十位放到
百位的位置上*/
y=y%10;//求得原数的个位
z+=((y+5)%10)*1000;/*也是加上5,除以10,取余数,乘上1000,作为千位,相当于个
位放到了千位的位置上,做了调换*/
returnz;
}
2
篇三:
数字竞猜_c语言
数字竞猜
一目的
通过数字竞猜的课程设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:
数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用(时间函数、绘图函数以及文件的读写操作函数等);复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
二需求分析
1·设计题目:
数字竞猜
输入一个四位数,如:
1234,可以是有重复数字的四位数,和电脑随机产生的不重复的四位数比较各个数位的数字,如果相同则得一分,比较后显示分数,并对多人游戏排名,排名用比较法;
2·系统以菜单界面方式(如能采用图形菜单界面更好)工作
构造menu()用来显示菜单界面
选择“1”输入数据,选择“2”显示名次(最多前三名),选择“3”退出,如果输入其他数字,程序提醒你输入错误;
3·程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。
程序构造多个函数---menuguesscompareranks---,层次分明,一个函数模
块完成一个功能,各个模块相互调用,组成一个整体;
4·编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等)。
程序中对函数进行说明,对变量加以注释,增加可读性;
5·写出规范的课程设计报告,具体要求见相关说明文档。
报告分块如下:
目的、需求分析、概要设计、详细设计、调试分析、测试结果、用户使用说明、课程设计总结,内容紧扣源程序。
三概要设计
1·程序中包含的主要函数如下:
menu()主菜单
main()主函数
voidguess()实现输入猜数调用compare进行比较变量j保存分数intcompare(int)实现所猜的数和随机数比较ab储存随机和猜得数各位数字voidranks()历史排名tchk排序时用到的中间变量
2·程序中包含的数据变量如下:
intm[4]存储系统产生的随机数
intd[4]存储玩家所猜数
inta[4]数组a保存所得分数x
3·程序中函数调用情况说明:
四详细设计
1:
显示主菜单
menu()/*主菜单*/
{
printf("\n*********************************************************\n");printf("*Welcometoplaythisgame*\n");printf("*1.Guessnumbers*\n");printf("*2.Historyranks*\n");printf("*3.eixt*\n");printf("*********************************************************\n");printf("\n");
}
main()
{clrscr();
for(;;){
menu();/*调用主菜单menu函数*/
printf("Pleaseinputyouchoicehere:
");
scanf("%d",&choice);
if(choice>=1&&choice<=3)
switch(choice)/*用switch控制主菜单*/
{
case1:
guess();break;/*调用guess函数*/
case2:
ranks();break;/*调用ranks函数*/
case3:
exit(0);
}
elseprintf("Sorry,yourchoiceisnotright,pleasechooseagain.");
printf("\nPressanykeytocontinue...");
getch();clrscr();
}
}
2:
输入保存所猜数
voidguess()/*实现对猜得数的输入保存输出*/
{staticintj=0;/*定义静态全局变量*/
printf("\nPleaseinputthenumberyouguess:
");
scanf("%d",&b);/*输入猜得数保存到b中*/d[j]=b;/*按次序保存猜所数字*/
printf("\n");
printf("---------------------------tips--------------------------\n");
printf("thenumberyouguessed:
%d\n",b);/*输出猜得数*/
a[j]=compare(b);/*保存猜得的分数*/
j++;
}
3:
实现猜得数与随机数的比较
intcompare(intb)/*实现猜得数与系统随机产生数的比较*/
{inta,a1,x=0,y=0,i,j;/*定义比较操作中的变量*/
intA[4],B[4];/*保存随机数和所猜数*/
staticintq=0;/*定义静态变量*/
srand((unsigned)time(NULL));/*初始化随机数发生器*/
do
{a=a1=rand()%9000+1000;/*产生1000-9999的随机数*/A[0]=a/1000;a=a%1000;
A[1]=a/100;a=a%100;/*保存随机数各个数位上的数字*/A[2]=a/10;
A[3]=a%10;
}while(A[0]==A[1]||A[0]==A[2]||A[0]==A[3]||A[1]==A[2]||A[1]==A[3]||A[2]==A[3]);/*产生四位不同的随机数*/
printf("thetrue_numberis:
%d\n",a1);/*保存系统产生的各数位数字不同数*/m[q]=a1;/*按次序保存每次产生的随机数*/
q++;
B[0]=b/1000;b=b%1000;
B[1]=b/100;b=b%100;
B[2]=b/10;
B[3]=b%10;
if(A[0]==B[0])x=x+1;/*比较千位*/
if(A[1]==B[1])x=x+1;/*比较百位*/
if(B[2]==A[2])x=x+1;/*比较十位*/
if(B[3]==A[3])x=x+1;/*比较个位*/
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{if(i!
=j)
if(A[i]==B[j])
y=y+1;
}/*逐位比较,计算(x,y)的值*/
if(x==4)/*全对*/
{
printf("Congratulations!
youwinthegame!
");
}
printf("youhavecorrectpositionandvaluebyguessed:
<%d,%d>\n",x,y);printf("----------------------------------------------------------\n");
returnx;
}
4:
实现按分排序
voidranks()/*按分排序*/
{intt,c,h,k;/*定义排序中变量*/
{
for(k=0;k<4;k++)
for(j=k+1;j<5-j;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优质c随机生成四位数范文模板 15页 优质 随机 生成 位数 范文 模板 15