登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 12|回复: 0

C++基础知识03.函数

[复制链接]

78

主题

2

回帖

103

积分

网站编辑

积分
103
发表于 前天 22:11 | 显示全部楼层 |阅读模式

函数

if,while,continue 就不记录了。函数这节覆盖的内容是:函数的定义与调用、参数传递及拓展知识。

函数的基本用法

  • 函数的定义
  • 函数的声明与调用
  • 参数传递
  • 默认参数
  • 函数重载

函数定义:与其他语言类似

#include<iostream>
using namespace std;

int add(int a, int b){
    return a+b;
}

int main(){
    int num1,num2;
    cin>>num1>>num2;
    cout<<add(num1,num2)<<endl;
}

函数的声明与调用:先声明,再调用,声明要位于调用之前。

#include <iostream>
using namespace std;
int add(int a,int b); //函数声明。

int main(){
    int x,y;
    cout<<"input x y:"; //输出提示信息。
    cin>>x>>y; //通过输入的方式给 x y 赋值。
    int c=add(x,y);//在未定义函数前调用函数。将函数的返回结果赋给变量 c。
    cout<<c<<endl;//输出 c 值。
    return 0;
}

int add(int a,int b){
    return a + b;
}//定义函数

参数传递

复制了 x,y 的变量值传递给 swap,未改变 x,y 指向的内存空间中的值

#include<iostream>
using namespace std;

void swap(int a,int b){ // 定义空函数 swap,用于交换 a 和 b 的值。
    int t=a; // 定义中间变量 t,并将 a 的值赋给变量 t。
    a=b; // 将 b 的值赋给 a。
    b=t; // 将 t 的值赋给 b,又因为 t=a,所以把 a 的值赋给 b。
}

int main(){
    int x=3;
    int y=4;
    cout<<"x="<<x<<","<<"y="<<y<<endl; // 输出 x、y。
    swap(x,y); // 调用 swap 函数。
    cout<<"x="<<x<<","<<"y="<<y<<endl; // 输出调用函数后 x、y 的值。
}

使用引用可以对 x,y 的值进行修改。

#include<iostream>
using namespace std;

void swap(int &a,int &b){ // 定义空函数 swap,用于交换 a 和 b 的值。
    int t=a; // 定义中间变量 t,并将 a 的值赋给变量 t。
    a=b; // 将 b 的值赋给 a。
    b=t; // 将 t 的值赋给 b,又因为 t=a,所以把 a 的值赋给 b。
}

int main(){
    int x=3;
    int y=4;
    cout<<"x="<<x<<","<<"y="<<y<<endl; // 输出 x、y。
    swap(x,y); // 调用 swap 函数。
    cout<<"x="<<x<<","<<"y="<<y<<endl; // 输出调用函数后 x、y 的值。
}

默认参数,与 Python 中的一样,可以设置参数的默认值,且设置默认值的参数要放在最后。

#include<iostream>
using namespace std;

int add(int a,int b = 10){
    return a+b;
}

int add2(int a = 10 ,int b=10){
    return a+b;
}

int main(){
    cout<<add(10)<<endl; // 10
    cout<<add2(10)<<endl; // 20
}

函数重载:与 Java 一样的重载规则

#include<iostream>
using namespace std;

int add(int a,int b){ //定义整型函数 add。
    int c;
    c = a - b;
    return c;
}

double add(double a,double b){ //定义双精度型函数 add。
    double c;
    c = a + b;
    return c;
}

int main(){ //函数重载。
    cout<<"a + b = "<<add(3,4)<<endl;//调用整型函数 add。
    cout<<"a + b = "<<add(3.111,4.222)<<endl;//调用双精度型函数 add。
}

常见函数

数学函数

在 C++ 中,除了可以创建各种函数,还包含了各种有用的函数供您使用。这些函数写在标准 C 和 C++ 库中,叫做<b>内置</b>函数。我们可以在程序中引用这些函数。

C++ 内置了丰富的数学函数,可对各种数字进行运算。下表列出了 C++ 中一些有用的内置的数学函数。

为了利用这些函数,您需要引用数学头文件 。

序号 函数 & 描述
1 <b>double cos(double);</b> 该函数返回弧度角(double 型)的余弦。
2 <b>double sin(double);</b> 该函数返回弧度角(double 型)的正弦。
3 <b>double tan(double);</b> 该函数返回弧度角(double 型)的正切。
4 <b>double log(double);</b> 该函数返回参数的自然对数。
5 <b>double pow(double, double);</b> 假设第一个参数为 x,第二个参数为 y,则该函数返回 x 的 y 次方。
6 <b>double hypot(double, double);</b> 该函数返回两个参数的平方总和的平方根,也就是说,参数为一个直角三角形的两个直角边,函数会返回斜边的长度。
7 <b>double sqrt(double);</b> 该函数返回参数的平方根。
8 <b>int abs(int);</b> 该函数返回整数的绝对值。
9 <b>double fabs(double);</b> 该函数返回任意一个浮点数的绝对值。
10 <b>double floor(double);</b> 该函数返回一个小于或等于传入参数的最大整数。

测试代码

#include<iostream>
#include<cmath>
using namespace std;

int main(){
    short s = 10;
    int i = -100;
    long l = 100L;
    float f = 20.4f;
    double d = 200.1;

    cout<<sin(d)<<endl;
    cout<<abs(i)<<endl;
    cout<<floor(f)<<endl; // 20 向 0 取整
    cout<<ceil(f)<<endl;   // 21 向大取整
    cout<<pow(f,s)<<endl;
}

随机数&时间

  • rand 取随机数
  • srand 设置随机数种子
#include<iostream>
#include<cmath>
#include<ctime>
using namespace std;

int main(){
    // 用当前时间充当随机数种子
    srand(time(NULL));

    cout<<rand()<<endl;
    cout<<rand()<<endl;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|断点社区 |网站地图

GMT+8, 2025-1-24 05:12 , Processed in 0.050868 second(s), 27 queries .

Powered by XiunoBBS

Copyright © 2001-2025, 断点社区.

快速回复 返回顶部 返回列表