函数与常见函数
606字约2分钟
2025-05-28
函数
函数就是程序中独立的功能
函数不调用就不执行
函数名不能重复
函数与函数之间是平级关系,不能嵌套定义
自定义函数写在main函数的下面,需要在上方声明
#include <stdio.h> void a(); int b(int i, int j); void main() { a(); int b = b(1, 2); } void a() { } int b(int i, int j) { return i + j; }
return下面,不能编写代码,永远执行不到,属于无效代码
函数的返回值类型为void,表示没有返回值,return可以省略不写;return后面没有具体数据,则表示结束函数
#include <stdio.h>
void h() {
printf("你好");
}
void main() {
h();
}
形参和实参
void he(形参1, 形参2) {
int c = 1;
printf("%d", c);
}
void main() {
he(实参1, 实参2);
}
常见函数
数学函数
#include <stdio.h>
// 常见数学函数库
#include <math.h>
void main()
{
double res1 = pow(2, 3); // 2的3次方
printf("%lf\n", res1); // 8.00
double res2 = sqrt(4); // 2的平方根
printf("%lf\n", res2); // 2.00
double res3 = ceil(2.3); // 向上取整
printf("%lf\n", res3); // 3.00
double res = floor(2.3); // 向下取整
printf("%lf\n", res); // 2.00
double res4 = fabs(-2); // 绝对值
printf("%lf\n", res4); // 2.00
}
绝对值
abs
:专门用于处理整数类型的数据,当传入浮点数时,会进行隐式类型转换,可能造成精度丢失。fabs
:适用于处理浮点数,能够精确计算浮点数的绝对值
时间
#include <stdio.h>
// 时间
#include <stdlib.h>
#include <time.h>
void main() {
// 时间
long long a = time(NULL);
printf("%lld", a); // 1744724083,时间戳
}
随机数
srand(time(NULL));
for (int i = 0; i < 5; i++)
{
int a = rand();
printf("%d\n", a);
}
- 种子不变,随机数的结果是固定的;所以为了使种子变化,则使用系统时间当作种子
- 随机数的范围:0 ~ 32767
如果你想要某一范围内的随机数
随机数范围公式:
a ~ b ==> (b + 1) - a = c
sand() % c + a
例如:取 7 ~ 23 之间的随机数
7 ~ 23 :(23 + 1) - 7 = 17
rand() % 17 + 7
这随机数就在 7 ~ 23
之间
srand(time(NULL));
for (int i = 0; i < 5; i++)
{
int a = rand() % 17 + 7;
printf("%d\n", a);
}
练习
// 猜数游戏
int b;
srand(time(NULL));
int a = rand() % 17 + 7;
while (1)
{
printf("请输入一个数:");
scanf("%d", &b);
if (b > a)
{
printf("大了");
}
else if (b < a)
{
printf("小了");
}
else
{
printf("中了");
break;
}
}