C语言初阶—9函数

这篇具有很好参考价值的文章主要介绍了C语言初阶—9函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

函数的声明

(main函数前)----告诉有一个函数

格式:  类型 函数名(参数);

函数的声明 放到头文件add.c

函数的定义

----创建函数----放到add.c

格式:类型 函数名(参数)

{

语句项;

}

C语言初阶—9函数,# C语言笔记,c语言,学习

在文件中包含头文件

#include "add.h"

包含头文件-实质上就拷贝头文件的声明 到文件

C语言初阶—9函数,# C语言笔记,c语言,学习

导入静态库

#pragma comment (lib, "add.lib")

函数的递归

例1: 输入无符号整形unsigned int数,打印每一位print 

%u 打印无符号整形数

#include<stdio.h>
void print(unsigned int n)
{
	if (n > 9)
	{
		print(n / 10);
	}
	printf("%d ", n % 10);
}

int main()
{
	unsigned int n = 0;
	scanf("%u", &n);
	print(n);

	return 0;
}

例2: 函数不允许创建临时变量,求字符串长度my_strlen

1.有临时变量

#include<stdio.h>

void my_strlen(char* str)
{
	int count = 0;
	while (*str != '\0')
	{
		count++;
		str++;
	}
	printf("%d\n", count);
}

int main()
{
	char str[] = "abcdef";
	my_strlen(&str);
	return 0;
}

2.无临时变量--递归

#include<stdio.h>

int my_strlen(char* str)
{
	if (*str != '\0')
	{
		return 1 + my_strlen(++str);
	}
	return 0;
}

int main()
{
	char str[] = "abcdef";
	printf("%d\n", my_strlen(&str));
	return 0;
}

例3: 不考虑溢出, 求N的阶乘fac()

1.递归

//1.递归
#include <stdio.h>

int Fac(int n)
{
	if (n == 1)
		return 1;
	else
	{
		return n*Fac(n-1);
	}
}

int main()
{
	int n = 0;
	scanf("%d", &n);
	printf("%d\n", Fac(n));
	return 0;
}

2.迭代--循环

//非递归
#include <stdio.h>

int main()
{
	int n = 0;
	int fac = 1;
	scanf("%d", &n);
	if (n == 1)
		fac = 1;
	while (n > 1)
	{
		fac = n * fac;
		n--;
	}
	
	
	printf("%d\n", fac);
	return 0;
}

例4: 不考虑溢出, 求斐波那契数列Fib()

1.递归

//递归
#include<stdio.h>

int Fib(int n)
{
	if (n == 1 || n == 2)
		return 1;
	else
		return Fib(n - 1) + Fib(n - 2);
}

int main()
{
	int n = 0;
	scanf("%d", &n);
	printf("%d\n", Fib(n));
	return 0;
}

2.非递归

//2.非递归
#include <stdio.h>
int main()
{
	int a = 1;
	int b = 1;
	int fib = 1;
	int n = 0;
	scanf("%d", &n);
	if (n == 1 | n == 2)
		fib = 1;
	while (n > 2)//5
	{
		fib = a + b;
		a = b;
		b = fib;
		n--;
	}
	printf("%d\n", fib);
	return 0;
}

函数在调用过程中重复过多,使用非递归文章来源地址https://www.toymoban.com/news/detail-844424.html

到了这里,关于C语言初阶—9函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 初阶c语言:超长详解“函数”。

    目录 一.在C语言中可将函数分为两大类: (1)库函数 (2)自定义函数  函数的使用  三.函数的参数 形参 实参  四.函数的调用 (1)传值调用  (2)传址调用 (3)那么我们如何判断是使用传值调用还是传址调用呢? 五.函数的嵌套调用和链式访问 (1)嵌套调用 (2)链式访问 函数定义:

    2024年02月12日
    浏览(33)
  • 【初阶C语言】认识和使用函数

    1. 函数是什么 2. 库函数 3. 自定义函数 4. 函数参数 5. 函数调用 6. 函数的嵌套调用和链式访问 7. 函数的声明和定义 8. 函数递归 在数学中有函数,在C语言中也有函数,我们直接先给出一个定义: 在基维百科中函数被定义为子程序:          在计算机科学中, 子程序 (英语

    2024年02月15日
    浏览(40)
  • 『C语言初阶』第四章-函数

    🔥 博客主页 : 小羊失眠啦. 🔖 系列专栏 : C语言 🌥️ 每日语录 : 世上无难事,只怕有心人。 ❤️ 感谢大家点赞👍收藏⭐评论✍️ 各位小伙伴们,时隔多日,小羊今天又来和大家一起学习C语言新的知识:函数,好的,废话不多说,咱们直接进入主题! 通常大家第一眼

    2024年02月14日
    浏览(29)
  • 初阶C语言——特别详细地介绍函数

     💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖        从标题也能看出来,我们有要进行 超详细

    2024年02月14日
    浏览(35)
  • 【初阶C语言3】特别详细地介绍函数以及在初阶中重要的算法——递归

     💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖        从标题也能看出来,我们有要进行 超详细

    2024年02月08日
    浏览(47)
  • 【初阶C语言】学会使用库函数getchar和putchar

    目录 一、getchar函数 1.作用: 2.认识函数 3.运用 二、putchar函数 1.作用 2.定义 3.运用 三、getchar与putchar的运用 四、getchar的应用 1.作用:       该函数的作用是 接收一个字符 ,然后把该字符 转化对应的ASCII值 2.认识函数  参数类型:括号里面的void意思是 不接受参数 ,就是括

    2024年02月15日
    浏览(41)
  • C语言完整版笔记(初阶,进阶,深刨,初阶数据结构)

    1.初阶: 1.1C语言初阶易忘知识点速记 2.进阶:  1.2C语言进阶易忘点速记 3.深剖: 2.1C语言重点解剖要点速记 2.2C语言重点解剖操作符要点速记   2.3C语言重点解剖预处理要点速记 2.4C语言重点解剖指针和数组要点速记 2.5C语言重点解剖内存管理函数要点速记 4.数据结构:

    2024年02月16日
    浏览(38)
  • 【初阶C语言】关于scanf函数的超详细介绍和多组输入

    感谢各位可以光临娥子的作品   我们学习一个函数,要围绕三个点 :1.函数是什么  2.函数的用法   3.注意的细节 认识一个 函数,我们需要了解他的功能、返回值、接收的参数三个方面 函数原型  (1)功能介绍          scanf函数是一个输入函数 ,所以接收的参数类型需

    2024年02月08日
    浏览(54)
  • C/C++|物联网开发入门+项目实战|函数输入与输出|值传递|地址传递|连续空间的传递|嵌入式C语言高级|C语言函数的使用-学习笔记(11)

    参考: 麦子学院-嵌入式C语言高级-C语言函数的使用 一堆代码的集合,用一个标签去描述它 复用化,降低冗余度 标签 ------ 函数名 函数和数组都属于内存空间,函数具备3要素: int *p; int a[100]; 1、函数名(地址) 2、输入参数 3、返回值 在定义函数时,必须将3要素告知编译器

    2023年04月20日
    浏览(55)
  • 【JavaEE初阶】——第七节.Servlet入门学习笔记

    作者简介:大家好,我是未央; 博客首页: 未央.303 系列专栏:JavaEE进阶 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录 前言 一、前置知识:Maven 1.1 🍎初识Maven 1.2 🍎Maven的使用  二、Servlet 第一个Servlet程序:hello world 方法步骤: 2.1 创

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包