优质c随机生成四位数范文模板 15页.docx

上传人:b****7 文档编号:25055486 上传时间:2023-06-04 格式:DOCX 页数:15 大小:21.19KB
下载 相关 举报
优质c随机生成四位数范文模板 15页.docx_第1页
第1页 / 共15页
优质c随机生成四位数范文模板 15页.docx_第2页
第2页 / 共15页
优质c随机生成四位数范文模板 15页.docx_第3页
第3页 / 共15页
优质c随机生成四位数范文模板 15页.docx_第4页
第4页 / 共15页
优质c随机生成四位数范文模板 15页.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

优质c随机生成四位数范文模板 15页.docx

《优质c随机生成四位数范文模板 15页.docx》由会员分享,可在线阅读,更多相关《优质c随机生成四位数范文模板 15页.docx(15页珍藏版)》请在冰豆网上搜索。

优质c随机生成四位数范文模板 15页.docx

优质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++)

if(a[k]

{

t=a[k];c=d[k];h=m[k];

a[k]=a[j];m[k]=m[j];d[k]=d[j];/*高低分玩家数据换位*/d[j]=c;a[j]=t;m[j]=h;

}

}

printf("\n");

printf("------------------------Historyranks------------------------\n");printf("rankscoretrue_numberguess_num\n");printf("-----------------------------------------------------------------\n");

j=1;/*输出排序结果*/

for(i=0;i<3;i++)/*保存前三位结果*/

{

printf("%d%12d%17d%13d\n",j,a[i],m[i],d[i]);

j++;

}

printf("------------------------------------------------------\n");

printf("\n");

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1