本篇文章为大家展示了C语言实现生成1到100随机数的方法,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
生成10个1~100的随机数
废话不多说直接上程序。
#include<stdio.h>#include<stdlib.h>#include<time.h> int main) {int ret = 0; srandunsigned int)timeNULL));forint i=0; i<10; i++) { ret = rand)%100;printf"%d ",ret); }return 0; }
这个程序是用来生成10个随机的数。接下来会详细说一说这个程序的构成。
随机数生成代码的分析
以上程序的关键代码是:
srand = unsigned)timeNULL)); ret = rand)%100;
rand)函数所需头文件是
#include<stdlib.h>
rand)是生成伪随机数的函数,它会按照一定的序列来生成随机数,但是它序列是固定的:
程序每次执行它都将按照这个序列来给出随机数,所以在对rand)不加限制条件的话,生成的随机数不够随机。
time)函数所需要头的头文件是:
#include<time.h>
time)函数,值得注意的是time函数的形参,这个形参是个指针变量,通常写为timeNULL)。
这个函数的功能是,返回自1970年1月1日00:00:00到你先在电脑运行的时间(例:2018年3月24日14:14:00)之间的时间。这个数是随机的,随着你电脑运行时间而发生改变。
srand)函数所需要的头文件是:
#include<stdlib.h>
srand)函数是伪随机数发生器种子,它给rand)函数一个产生一个起点。在单独使用rand)函数的时候,它将1作为默认参数。srand)的形参是一个无符号的类型,即unsigned类型,可以是int,float,char等等。
但在这里为了达到随机数效果,将使用time)函数来产生一个起点,它直接作用于rand)函数。
注意:
ret = rand)%100;
rand)%100是为了产生100以内的随机数。
有趣的小程序
这是一个电脑自己猜数字的小程序。
#include<stdio.h>#include<time.h>#include<process.h>#include<stdlib.h>#include<Windows.h>int main) { int ret = 0; int guess = 0; int left = 0; int right = 100; srandunsigned int)timeNULL)); ret = rand) % 100; printf"提供的答案数是->%d\n",ret); guess = 50; while 1) { if guess > ret) { printf"猜大了->%d\n", guess); right = guess; guess = right + left) / 2; Sleep1000); } else if guess < ret) { printf"猜小了->%d\n", guess); left = guess; guess = right + left) / 2; Sleep1000); } if guess == ret) { printf"猜到了是%d", guess); break; } } system"pause "); return 0; }
这里使用了二分法的思想,让电脑自己去猜100以内的一个数。
使用了Sleep)函数用来延迟一下打印时间,Sleep)函数的参数的单位是ms,所以1000ms=1s。
更多相关资讯:
C语言如何随机生成一个矩阵
C语言随机生成100个数,并从大到小排序