今天,由于时间限制,我们只暂时介绍一些库函数中一些常用的函数。在下一篇文章中,我们将介绍数据结构中的数组和广义表,但是不要低估库函数中的一些函数。它们会帮助你提高程序效率,让你在实际开发中感到舒适,有时还会减轻你开发项目的压力。因此,了解他们是非常重要的。
I. div功能:
这个函数将两个整数相除。
该函数返回除以两个数的商和余数。当然,一个函数不能返回两个原子类型,它的返回值在stdlib.h中定义的结构中,即:
结构div_t{
int quot//商
int rem//余数
};
该函数返回一个div_t结构类型。让我们看一个例子:
Div示例
运行结果:
样本运行结果
2.exit()函数:
它的功能是结束当前进程或程序,然后跳回操作系统。
一般形式是无效退出(int状态)。
参数状态表示终止状态(程序退出并返回操作系统)。一般0表示正常退出,非0表示异常退出。
exit函数和return的区别在于,如果函数之间相互调用,return会返回给上一级的调用者,而exit会直接结束程序,把权限交给操作系统,不管他是在主函数中调用exit函数,还是在其他函数中调用exit函数,只要他满足exit函数,他就会结束整个程序,不管他所属的函数是否需要返回某种类型的值。
示例出口
运行结果:
运行结果
3.ldiv功能:
与上面的div函数不同的是,这个函数用于划分两个长整数。和上面其他的没什么区别,
一般形式:ldiv_t ldiv(长x,长y)。
Ldiv_t是在stdlib.h中定义的结构,其形式为:
struct ldiv_t{
长quot//商
长rem//余数
}
和其他div类似,这里就不介绍了。
4.rand()函数:
该函数用于生成随机数。
我们知道计算机是基于逻辑的机器,不能真正实现随机性,所以rand()函数实现伪随机数。
在使用rand函数之前,应该使用srand函数来设置随机数种子。如果没有设置随机数种子,系统会自动设置1为随机数种子。一旦随机数种子相同,生成的随机数将是相同的,不会改变。
一般形式是:
int rand();
该函数没有参数,返回一个介于0和32767之间的伪随机数。
如果需要生成[m,n]之间的随机数,可以使用rand()%(n-m ^ 1)m。
示例:
模型
生成一个从50到100的随机数,运行结果为:
运行结果
5.srand()函数:
用于初始化随机数生成器。
一般形式是:
void srand(无符号种子);
参数种子是要设置的随机数种子,其值是整数。这个函数没有返回值。
我之前说过,由于rand函数没有设置种子值,每次的种子值都是一样的,所以rand生成的随机数不会改变,而通过srand函数改变系统提供的种子值时,每次调用rand时伪随机数序列都会不一样,所以感觉真的很随机。一般我们用系统时间来改变种子值,所以因为每次传入的种子值不同,所以是真正随机的。让我们看一下这个例子。
模型
结果不会每次都一样。
由于时间限制,我们暂时只在这里介绍。当然,还有随机函数、随机化函数等。暂时不介绍。你可以自己检查。下一篇文章将介绍数据结构中的数组和广义表。