C语言 - 函数设计 例子-(在数字段 数九) 比如19090, 有2个九

目录

1.函数设计解释

1.什么是函数

2.函数的分类

2.函数设计例子输出

1.无返回值-函数设计

2.带有返回值-函数设计

3.形参 实参例子

3.代码实现过程

1.程序流程

2.程序思路

3.程序内容

4.结尾


1.函数设计解释

1.什么是函数

比如:某XXX(); XXX就是函数的名字;在第一讲中  printf() 就是一个函数        大家常说的造轮子就是实现某种工具(功能) ,比如说 一段代码块 需要反复实现,为了避免反复写大量的代码  就要写一个轮子(工具) ,这个轮子就是所谓的函数。因为在函数中程序是优先执行main函数代码段,一是为了思路清晰,二是若要需要反复执行某一段  ,大大减少了代码量

2.函数的分类

库函数自定义函数

库函数:就是说所谓的 printf()输出函数  scanf()输入函数。为了提高程序的效率,在C语言的基础库中提供了一系列类似的库函数让程序变的简洁,方便程序员进行软件开发

自定义函数:为了实现某个功能,另一种情况就是避免了大量重复代码的出现,在main函数中看起来没有过多冗长的代码,使得思路清晰。

2.函数设计例子输出

1.无返回值-函数设计

什么又叫做无返回值呢,没有什么变量要获取的,不会去调整些什么。一般我会用在 使用在程序说明。        

//函数设计例子输出
//无返回值-函数设计
void begin(void)
{
    //函数设计-数九
    printf("Function Design - Number Nine\n");
    return;
} 

一个 void 意思为空就是没有值(变量)要返回 

begin 就是函数的名字,括号内的是形参,第三小节讲,因为是void 所以表示空的

代码块的内容就是自己所想实现的

最后的 return; 就只是一个return; 后面不写任何值

2.带有返回值-函数设计

就是写完某个函数之后 要获取值

//带有返回值-函数设计
int text(void)
{
    return 321;
}

但是这样写就没有了实际的意义, 这个text()函数 只是返回了 int类型值为321的,实际上来说还没有定义变量;

3.形参 实参例子

所以说 形参 和 在main函数使用自定义函数的实参, 把值传到了函数中,肯定要返回某个值的,不然就没有了实际意义

//形参 实参例子         输入两个数获取最大值
int max(int x, int y)
{
    //在if只有一条语句的时候 可以不用写{ }
    //因为中间隔了一行 若是不成立 返回值为x
    if (x < y)
        return y;

    return x;  
}

在名为max的函数  括号里要求了 要传入两个类型为整数的值  经过比较返回值

在main()函数的实现

    //输入两个数获取最大值
    //所以要定义两个值
    int i, y;
    scanf("%d %d", &i, &y); //字符串中间 输入两个数字中间以空格隔开

    //定义 名叫max_num 最大的数 的变量
    //并使用max函数
    int max_num = 0;
    max_num = max(i, y);   //这个括号里就是实参 传到了max函数里,并运行
                            //结果返回给了  max_num
    //输出结果
    printf("max_num = %d", max_num);

3.代码实现过程

1.程序流程

程序说明  -> 取值 -> 设计函数并返回值 -> 输出结果

2.程序思路

程序说明:用以上讲过的 无返回值的函数设计

取值:定义一个变量 传到自定义函数里

设计函数并返回值://代码实现

输出结果:打印输出

3.程序内容

/**
 *      program:函数设计 例子-(在一定范围内 数九) 比如19090, 有2个九
 *          
 *          函数设计例子输出
 *                      1)程序说明   2)带有返回值  3)形参 实参例子
 *          主题程序实现
*/
#include <stdio.h>
    
//无返回值-函数设计     程序说明
void begin(void)
{
    //函数设计-数九
    printf("Function Design - Number Nine\n");
    return;
} 

//形参 实参例子         输入两个数获取最大值
int max(int x, int y)
{
    //在if只有一条语句的时候 可以不用写{ }
    //因为中间隔了一行 若是不成立 返回值为x
    if (x < y)
        return y;

    return x;  
}

//带有返回值-函数设计
int text(void)
{
    return 321;
}

// 返回值为int  函数名  (形参)  
//如果形参和实参变量名一样 也没有关系
int cou_ght(int a)
{
    //按逻辑说 a 就等于num 因为是通过在main函数中 cou_ght()里传入的
    //遇到九做 加一
    int text = 0;

    //do..while  和 while的区别就是
    //do..while 是先做了一次循环再判断是否在循环
    do
    {
        //判断 a % 10(获得个位数)  是否要等于9
        if (a % 10 == 9)
        {
            text++;     //默认 +1;
        }
        //假设  131 / 10 = 13;
        //就是说百位变个位  一开始的个位数已经判断过了
        a /= 10;        //a = a / 10;       
        
    } while (a != 0);   //a 因为一直做除法 到最后不等0 结束

    return text;        //最后把test累加的值 返回到main函数中
}  

int main(void)
{
    //程序函数说明
    //选择注释
    begin();

    //输入两个数获取最大值
    //所以要定义两个值
    int i, y;
    //选择注释
    //scanf("%d %d", &i, &y); //字符串中间 输入两个数字中间以空格隔开

    //定义 名叫max_num 最大的数 的变量
    //并使用max函数
    int max_num = 0;
    max_num = max(i, y);   //这个括号里就是实参 传到了max函数里,并运行
                            //结果返回给了  max_num
    //输出结果
    //选择注释
    //printf("max_num = %d", max_num);


    //程序正式开始 用*把以上例子隔开
    for (int i = 0; i < 50; i++)
    {
        printf("**");
    }

    //程序说明
    begin();
    printf("input:");       //提示输入 没有\n,同行显示

    //取值
    int num;
    scanf("%d", &num);

    //设计函数并返回值
    // 想一个名字 填写实参
    //count night
    //在函数中 是有返回值的所以我们要再定义变量并把
    //                  cou_ght函数的值赋值给这个变量里
    int count = 0;
    count = cou_ght(num);

    //打印输出
    //在 num中 有 count 个 9
    printf("There are %d 9 in %d\n", count, num);
    

    getchar();
    getchar();
    return 0;
}

4.结尾

重点!重点!重点!重点!重点!

重点看代码块中的注释 和思路       //复制后可以直接运行

下一讲   C语言随机4位数 猜数游戏 (循环 判断)

有问题可以直接私信 ,You should elevate yourself. Of course, and me.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A.Helen

当然重点是个人成长

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值