#include<初见C语言之函数>

目录

一、函数的概念

二、库函数

1.标准库和头文件

2.库函数的使⽤⽅法

2.1库函数的一般格式

三、自定义函数

1.函数的语法格式

2.函数举例

四、形参和实参

 实参和形参的关系

五、return语句

六、 数组做函数参数

4.总的实现

总结


一、函数的概念


二、库函数

1.标准库和头文件

  • C语⾔的国际标准ANSIC规定了⼀些常⽤的函数的标准,被称为标准库(库函数),那不同的编译器⼚商根据ANSI提供的C语⾔标准就给出了⼀系列函数的实现。

        库函数的种类如下:

2.库函数的使⽤⽅法

库函数的学习和查看工具如下:

库函数相关头⽂件:https://zh.cppreference.com/w/c/header

C/C++官⽅的链接:https://zh.cppreference.com/w/c/header

2.1库函数的一般格式

下面以查找sqrt为例:

实践:

include<stdio.h>
#include <math.h>
int main()
{
    double d = 16.0;
    double r = sqrt(d);
    printf("%lf\n", r);
    return 0;
}

结果


三、自定义函数

虽然给了库函数,但是不能实现我们生活中想要的功能,这个时候就要程序员自己,创造函数为程序添加一些新奇的功能——自定义函数。

1.函数的语法格式

ret_type fun_name(形式参数)
{
}

  • ret_type是函数返回类型
  • fun_name是函数
  • 括号中的是形式参数
  • {}这个是函数体

比喻:

我们可以把函数想像成银行的ATM机存钱不管你存一百还是五十,你都要拿钱去存,银行才有钱函数也是⼀样的,函数⼀般会输⼊⼀些值(可以是0个,也可以是多个),经过函数内的计算,得出结果。

  • ret_type返回类型viod表示什么都不返回。
  • fun_name 是为了⽅便使⽤函数,根据情况来取。
  • 函数的参数相当于钱,函数的参数也可以是 void ,明确表⽰函数没有参
    数。如果有参数,要交代清楚参数的类型和名字,以及参数个数。
  • {}括起来的部分被称为函数体,函数体就是完成计算的过程。

2.函数举例

写一个减法函数代码如下(示例):

#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    //输⼊
    scanf("%d %d", &a, &b);
    //调⽤减法函数,完成a和b的相减
    //求和的结果放在r中
    //输出
    printf("%d\n", r);
return 0;
}

根据上述的分析,给函数取名:reduce,reduce函数要接收两个整型的参数,计算结果也是整型。

代码如下:

#include <stdio.h>
int reduce(int x, int y)
{
    int z = 0;
    z = x-y;
    return z;
}
int main()
{
    int a = 0;
    int b = 0;
    //输⼊
    scanf("%d %d", &a, &b);
    //调⽤减法函数,完成a和b的相减
    //结果放在r中
    int r = reduce(a, b);
    //输出
    printf("%d\n", r);
    return 0;
}

以后我们在新设计一个函数时,这里的函数名、参数、返回类型都灵活多变的。


四、形参和实参

 

实际参数:真实传递给函数的参数

形式参数: x和 y 只是形式上存在的,不会向内存申请空间,不会真实存在的,所以叫形式参数。形式参数只有在函数被调⽤的过程中为了存放实参传递过来的值,才向内存申请空间。

 实参和形参的关系

我们在调试的时候可以观察到,x和y确实得到了a和b的值,但是x和y的地址和a和b的地址是不⼀样的,所以我们可以理解为形参是实参的⼀份临时拷⻉

五、return语句

六、 数组做函数参数

void game()
{
    int r = rand() % 100 + 1;//产生1~100的随机数
    int guess = 0;//定义猜的数字
    int count = 5;//定义猜的次数

        //游戏的主要逻辑思路
    while (count)
    {
        printf("还有%d次机会\n", count);
        scanf("%d", &guess);
        if (guess > r)
        {
            printf("猜大啦\n");
        }
        else if (guess < r)
        {
            printf("猜小啦\n");
        }
        else if (guess == r)
        {
            printf("恭喜你,猜中啦\n");
        }
        count--;
    }
    if (count == 0)
    {
        printf("没有机会啦,正确答案是:%d\n", r);
    }
}

4.总的实现

#include<time.h>
#include<stdlib.h>
#include<stdio.h>
//菜单函数
void menu()
{
	printf("**********\n");
	printf("**1.play**\n");
	printf("**0.exit**\n");
	printf("**********\n");
}
//游戏函数
void game()
{
	int r = rand() % 100 + 1;//产生1~100的随机数
	int guess = 0;//定义猜的数字
	int count = 5;//定义猜的次数
	//游戏的主要逻辑思路
	while (count)
	{
		printf("还有%d次机会\n", count);
		scanf("%d", &guess);
		if (guess > r)
		{
			printf("猜大啦\n");
		}
		else if (guess < r)
		{
			printf("猜小啦\n");
		}
		else if (guess == r)
		{
			printf("恭喜你,猜中啦\n");
		}
		count--;
	}
	if (count == 0)
	{
		printf("没有机会啦,正确答案是:%d\n", r);
	}
}

//主函数
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	menu();
	printf("请输入:>\n");
	scanf("%d", &input);
//选择界面
	do
	{
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
		}
	} while (input);
	return 0;
}

总结

猜数字游戏的实现

主要是运用的分支和循环的知识运用,希望大家能够熟悉这一篇章的内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值