#C语言函数

函数的定义

  • 函数头:函数对外的公共接口

    1. 函数名称:命名规则与变量一致,一般取与函数实际功能相符合的、顾名思义的名称。

    2. 参数列表:即黑箱的输入数据列表,一个函数可有一个或多个参数,也可以不需要参数。

    3. 返回类型:即黑箱的输入数据类型,一个函数可不返回数据,但最多只能返回一个数据

  • 函数体:函数功能的内部实现

  • 语法说明

  • 返回类型 函数名称(参数1,参数2,.......)
    {
        函数体
        return 返回值;
    }

  • 用函数实现两数相加

  • #include <stdio.h>
    
    // 实现两个数值相加,并将结果返回
    float Add(int a, float b)
    {
        return a+b;
    }
    
    int main(int argc, char const *argv[])
    {
        int a = 10;
        float f = 10.5;
        float ret = Add(a,f);
        printf("%.2f\n",ret);
        return 0;
    }

    加减乘除取余接口函数,并实现将结果返回到主函数,并输出

  • #include <stdio.h>
    #include <stdbool.h>
    
    float add(float a, float b)// 形参,空间内存
    {
        return a+b; // return后函数空间被释放
    }
    
    float sub(float *a, float *b)// 形参,空间内存
    {
        return *a-*b; // return后函数空间被释放
    }
    
    float data; // 全局变量,程序不结束空间不释放
    
    float *mul(float *a, float *b)// 形参,空间内存 
    {
        data = (*a)*(*b);
        return &data; // return后函数空间被释放
    }
    
    bool div(float *a, float *b, float *rdata)// 形参,空间内存 
    {
        *rdata = (*a)/(*b);
        return true;
    }
    
    //sur(int pbuf[])
    void sur(int *pbuf,int *ret)
    {
        *ret = pbuf[0] % pbuf[1];   
    }
    
    int main(int argc, char const *argv[])
    {
        float a = 15.6;
        float b = 10.6;
    
        int a1 = 3;
        int b1 = 4;
    
        float ret = add(10.5,15.6);// 实参
        float ret1 = add(a1,b1);// 实参
        printf("%.2f,%.2f\n",ret, ret1);
    
        printf("%.2f\n", sub((float *)&a1,(float *)&b1));
    
        float *p = mul(&a,&b);
        printf("%.2f\n",*p);
    
        float rdata = 0;
        div(&a,&b,&rdata);
        printf("%.2f\n",rdata);
    
    
        int buf[2] = {a1,b1};
        int ret2;
        sur(buf,&ret2);
        printf("%d\n",ret2);
    
        return 0;
    }
    

    从键盘输入一个字符串,然后按照下面要求输出一个新字符串。新串是在原串中,每两个字符之间插入一-个空格,如原串为abcd,则新串为ab cd。要求在函数insert中完成新串的产生﹔

    #include <stdio.h>
    #include <string.h>
    
    void insert_space(char *newStr,char *str)
    {
        int cnt = 0;
        for(int i = 0; i < strlen(str); i++)//strlen计算字符串长度
        {
            newStr[cnt++] = str[i];
            if((i+1) % 2 == 0) // 添加空格
            {
                newStr[cnt++] = ' ';
            }
        } 
    }
    
    int main(int argc, char const *argv[])
    {
        char str[] = "jackroseken";
        char newStr[strlen(str)*2];
        // 清空数组
        memset(newStr,0,strlen(str)*2);
    
        insert_space(newStr,str);
        printf("%s\n",newStr);
        return 0;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值