C语言中unsigned和signed在声明时有什么作用、
1、unsigned的作用就是将数字类型无符号化, 例如 int 型的范围:-2^31 ~ 2^31 - 1,而unsigned int的范围:0 ~ 2^32。看起来unsigned 是个不错的类型,尤其是用在自增或者没有负数的情况。但是在实际使用中会出现一些意外的情况。
2、signed在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据。
C++ 产生随机数 srand和time
srand( ( unsigned )time( NULL ) ); //是用当前的时间值来作为随机数种子。任何的随机数发生器都需要一个”种子“。
time函数返回当前日历时间的秒数。他的返回值类型为 time_t 。
(unsigned )time( 0 )前的(unsigned )是把返回值强制转换为(unsigned )型。
这个函数原型是time_t time( time_t * ),因为编译器对0和NULL作了隐示转换,所以time( 0 )等价于time( NULL )。
rand函数实际上是伪随机数,所以要用srand()来完成,以便产生不同的随机数,这个过程叫做随即化。
srand函数取一个unsigned类型的整数参数并内嵌rand函数,即种子
如果不初始化随机数种子,每次随机出来的都会是同一个数。
在C++中:rand和srand两个函数都位与<cstdlib>(被包含于iostream中)
原型:void srand(unsigned int seed)
void rand (void)
seed相当于一个种子,srand函数根据这个种子seed,设置一个随机起点,而rand函数根据这个随机起点,返回一个随机数【seed ,RAND_MAX】,其中RAND_MAX是0x7ffff,但是是一个伪的随机数(多次编译产生的随机数是一样的,除非给一个变化的种子)
srand rand RAND_MAX 分别是什么意思?
stdlib.h头文件中有宏#define RAND_MAX 0x7fff
rand()产生一个0到0x7ffff即0到32767之间的随机数
rand()/(RAND_MAX+1.0)就等于一个0到1之间的小数了,因为rand()最大是32767最小是0,再除以32768就是一个0到1之间的小数(不能等于1),再乘以10就是一个0到10之间的数了(不等于10).最后再加1,就成了一个求1到10之间随机数的式子了.
srand函数是随机数发生器的初始化函数,原型:
void srand(unsigned seed);
它需要提供一个种子,如:
srand(1);
直接使用1来初始化种子。
printf("%10.6f\n",pi*4) 在c语言中是什么意思?
printf是c语言中的输出函数,这条语句输出pi*4,pi是变量,是用户自己定义的,赋值应该是3.141592654!
重点来了,%10.6f中10是指输出结果的宽度是10,6是指输出结果小数点后四舍五入,精度为6位!
追答最后输出的结果为 12.566370