C内置标准函数

printf函数

  • printf直接输出字符串,不加‘\n’
char* GetMemory_1()
{
	char p[] = "hello world";
	return p;//返回局部变量
}
const char* GetMemory()
{
	const char* p = "hello world";//字符串常量
	return p;
}
int main()
{

	const char* str = NULL;
	str = GetMemory();
	printf(str);//hello world
	//相当于printf("hello world")
	
	return 0;
}

rand随机数

#include<stdio.h>
#include <stdlib.h>

void random(int n)
{
	for (int i = 0; i < n; i++)
	{
		printf("%d\n",rand());//int rand(void);//伪随机数,有可能重复出现
	}
}

int main() 
{
	srand((unsigned)time(NULL));//void srand(unsigned int seed);//随机数发生器rand的初始化函数,避免获得相同的随机数
	//random(10);

	return 0;
}

时间类函数

#include<stdio.h>
#include <time.h>

int main()
{
	clock_t t1 = clock();//clock_t为clock函数返回值类型,单位毫秒,1/1000秒,记录从进入函数到执行该语句时所用的时间
	
	printf("%d",t1);
	
	time_t t2 = time(NULL);//time_t为time函数返回值类型,单位秒
	                       //time_t指向的时间(即从历年1970.0.0到现在的时间)
						   //32位存在2038问题,即返回值为long int最大值2^31-1秒=68年,1970+68=38年
						   
	return 0;
}
#include<stdio.h>
#include <time.h>

int main()
{
	time_t t2 = time(NULL);
	struct tm newtime;//时间格式的结构体
	//gmtime_s(&newtime,&t2);//GMT格林尼治时间,子午线
	localtime_s(&newtime, &t2);//本地时间(转换的时间,获取时间)
	//将time_t指向的时间(即从历年1970.0.0到现在的时间)转换为以struct tm结构体格式保存的时间

	printf("%d\n", newtime.tm_year+1900);//c标准定义为tm结构体的年份为1900年开始
	printf("%d\n", newtime.tm_mon + 1);//月份从0开始计数
	printf("%d\n", newtime.tm_mday);
	printf("%d\n", newtime.tm_hour);//gmtime10,localtime18
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: trunc()函数C语言中math.h库中自带的一个函数函数的作用是截取一个浮点数的整数部分。 其标准源代码如下: ```c #include <math.h> double trunc(double x); ``` 这是一个非常简单的函数,只需要一个参数即可完成整数部分的截取操作。 具体实现细节如下: ```c double trunc(double x) { if (x < 0) { // 对于负数,向下取整的结果应该为比当前值小的最大的整数 return ceil(x); } else { // 对于正数,向下取整的结果应该为比当前值小的最小的整数 return floor(x); } } ``` 这里使用了C语言math.h库中的两个函数:ceil()和floor(),分别用于向上取整和向下取整。 需要注意的是,如果x是正数的话,向下取整的结果应该是比x小的最小整数,而不是比x小的最接近的整数。这一点需要特别注意。 总体来说,trunc()函数虽然非常简单,但是在数值计算中却是一个非常常用的函数。 ### 回答2: trunc函数C语言标准库中的数学函数,用于将浮点数向零取整,即舍弃小数部分,只保留整数部分。其源代码如下: ```c double trunc(double x) { if (isnan(x)) return x; if (x == 0.0) return x; if (ceil(x) == x && x < 0.0) return x; return (x < 0.0) ? ceil(x) : floor(x); } ``` 函数接受一个浮点数x作为参数,返回一个双精度浮点数。该函数的实现分为四个步骤: 1. 如果x是NaN(不是数字),则函数直接返回x。 2. 如果x等于0.0(零),则函数直接返回x。 3. 如果x的向上取整等于x且x小于零,则函数直接返回x。这是为了处理一些浮点数可能存在的精度误差问题。 4. 否则,函数利用内置的取整函数ceil和floor将x向上取整或者向下取整,从而实现将x向零取整的效果。如果x小于零,则向上取整;否则向下取整。 上述代码中使用了浮点数比较时的一些技巧,如不直接使用==运算符判断两个浮点数是否相等,而是使用ceil函数。这是因为浮点数在计算机内部采用二进制表示,存在精度问题,直接进行比较可能会失败。因此,在实现数学函数时必须考虑这些特殊情况。 ### 回答3: C语言标准trunc函数的源码如下: ```c #include <math.h> double trunc(double x) { if (isnan(x) || isinf(x)) { return x; } double integer_part; modf(x, &integer_part); return integer_part; } ``` trunc函数需要引用math.h头文件,它的作用是将一个double类型的数值x截取为整数部分。如果x为NaN(not a number)或者无穷大(infinity),那么直接返回x,否则调用modf函数截取整数部分并返回。在实现中,调用了modf函数,它的作用是将一个double类型的数值分解为整数部分和小数部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值