//============================================================================ // Name : 随机数.cpp // Author : menglei // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream.h> #include <iomanip.h> #include <stdlib.h> int main() { unsigned seed; cout << "enter seed: "; cin>> seed; srand (seed);//播种,给相同的种子会有相同的随机数 for (int i=1;i <=20;i++){ cout <<setw(13) <<(1+rand()%6); if (i%5==0) cout <<endl; } } /** 1 符号%是取余的意思; 2 rand()是随机数生成函数; 3 rand()%a的结果就是0~(a-1),如rand()%10则会随机出现0~9这十个数。 同理可换成其他数,如取10~19之间的随机数,则可写成10+rand()%10; 4 rand()的内部实现是用线性同余法做的,他不是真的随机数, 只不过是因为其周期特别长,所以有一定的范围里可看成是随机的 ,rand()会返回一随机数值,范围在0至RAND_MAX 间。 srand()用来设置rand()产生随机数时的随机数种子,一般选用时间作为种子。 */ /* * iomanip.h iomanip.h是I/O流控制头文件,就像C里面的格式化输出一样. 在新版本的c++中头文件已经用iomanip取代了iomanip.h。 以下是一些常用的函数: dec 置基数为10 相当于"%d" hex 置基数为16 相当于"%X" oct 置基数为8 相当于"%o" setfill(c) 设填充字符为c setprecision(n) 设显示小数精度为n位 setw(n) 设域宽为n个字符 setiosflags(ios::fixed) 固定的浮点显示 setiosflags(ios::scientific) 指数表示 setiosflags(ios::left) 左对齐 setiosflags(ios::right) 右对齐 setiosflags(ios::skipws 忽略前导空白 setiosflags(ios::uppercase) 16进制数大写输出 setiosflags(ios::lowercase) 16进制小写输出 setiosflags(ios::showpoint) 强制显示小数点 setiosflags(ios::showpos) 强制显示符号 示例: #include <iomanip.h> #include <iostream> using namespace std; int main() { cout<<12345.0<<endl;//12345 cout<<setiosflags(ios::scientific)<<12345.0<<endl;//1.234500e+004 cout<<setprecision(3)<<12345.0<<endl;//1.23e+004 return 0; } */ /* * stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C、C++语言的最常用的系统函数 该文件包含了的C语言标准库函数的定义 stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。 具体的内容你自己可以打开编译器的include目录里面的stdlib.h头文件看看。 * stdlib.h用法 1函数名称: calloc 函数原型: void * calloc(unsigned n,unsigned size); 函数功能: 分配n个数据项的内存连续空间,每个数据项的大小为size 函数返回: 分配内存单元的起始地址,如果不成功,返回0 2函数名称: free 函数原型: void free(void* p); 函数功能: 释放p所指的内存区 函数返回: 参数说明: p-被释放的指针 3函数名称: malloc 函数原型: void * malloc(unsigned size); 函数功能: 分配size字节的存储区 函数返回: 所分配的内存区地址,如果内存不够,返回0 4函数名称: realloc 函数原型: void * realloc(void * p,unsigned size); 函数功能: 将p所指出的已分配内存区的大小改为size,size可以比原来分配的空间大或小 函数返回: 返回指向该内存区的指针.NULL-分配失败 5函数名称: rand 函数原型: int rand(void); 函数功能: 产生0到32767间的随机整数(0到0x7fff之间) 函数返回: 随机整数 6函数名称: abort 函数原型: void abort(void) 函数功能: 异常终止一个进程. 7函数名称: exit 函数原型: void exit(int state) 函数功能: 程序中止执行,返回调用过程 函数返回: 参数说明: state:0-正常中止,非0-非正常中止 8函数名称: getenv 函数原型: char* getenv(const char *name) 函数功能: 返回一个指向环境变量的指针 函数返回: 环境变量的定义 参数说明: name-环境字符串 9函数名称: putenv 函数原型: int putenv(const char *name) 函数功能: 将字符串name增加到DOS环境变量中 函数返回: 0:操作成功,-1:操作失败 参数说明: name-环境字符串 10函数名称: labs 函数原型: long labs(long num) 函数功能: 求长整型参数的绝对值 函数返回: 绝对值 11函数名称: atof 函数原型: double atof(char *str) 函数功能: 将字符串转换成一个双精度数值 函数返回: 转换后的数值 参数说明: str-待转换浮点型数的字符串 12函数名称: atoi 函数原型: int atoi(char *str) 函数功能: 将字符串转换成一个整数值 函数返回: 转换后的数值 参数说明: str-待转换为整型数的字符串 13函数名称: atol 函数原型: long atol(char *str) 函数功能: 将字符串转换成一个长整数 函数返回: 转换后的数值 参数说明: str-待转换为长整型的字符串 14函数名称: ecvt 函数原型: char *ecvt(double value,int ndigit,int *dec,int *sign) 函数功能: 将浮点数转换为字符串 函数返回: 转换后的字符串指针 参数说明: value-待转换底浮点数,ndigit-转换后的字符串长度 15函数名称: fcvt 函数原型: char *fcvt(double value,int ndigit,int *dec,int *sign) 函数功能: 将浮点数变成一个字符串 函数返回: 转换后字符串指针 参数说明: value-待转换底浮点数,ndigit-转换后底字符串长度 *