C语言函数 您所在的位置:网站首页 迭代的拼音怎么写 C语言函数

C语言函数

2024-01-31 02:07| 来源: 网络整理| 查看: 265

简单介绍C语言函数

C语言函数是一种函数,用来编译C语言,所在库函数为ctype.h,分为分类函数,数学函数,目录函数,进程函数,诊断函数,操作函数等。

从表面上看,函数在使用时必须带上括号,有必要的话还要传递参数,函数的执行结果也可以赋值给其它变量

对于库函数和自定义函数

C语言在发布时已经为我们封装好了很多函数,它们被分门别类地放到了不同的头文件中(暂时先这样认为),使用函数时引入对应的头文件即可。这些函数都是专家编写的,执行效率极高,并且考虑到了各种边界情况,各位读者请放心使用。

C语言自带的函数称为库函数(Library Function)。库(Library)是编程中的一个基本概念,可以简单地认为它是一系列函数的集合,在磁盘上往往是一个文件夹。C语言自带的库称为标准库(Standard Library),其他公司或个人开发的库称为第三方库(Third-Party Library)。

递归与迭代的区别

递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.

一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.

使用递归要注意的有两点:

1)递归就是在过程或函数里面调用自身;

2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口.

迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B.

递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.

下面举些函数调用的例子包括递归函数与迭代函数的应用。

实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定

如:输入9,输出99口诀表,输出12,输出1212的乘法口诀表。

#define _CRT_SECURE_NO_WARINGS 1 #include int main() { int i = 0, j = 0, input = 0; scanf_s("%d", &input); for (i = 1; i int year = 0; for (year = 1000;year int i = 0; for (i = 100;i printf("%d ", i);break; } }

递归与迭代函数的应用。

递归和非递归分别实现求第n个斐波那契数

例如:

输入:5 输出:5

输入:10, 输出:55

输入:2, 输出:1

#define _CRT_SECURE_NO_WARINGS 1 #include int Fib(int i); int main() { int i = 0; int num = 0; printf("输入要求的数字\n"); scanf_s("%d", &i); num = Fib(i); printf("%d\n", num); return 0; } int Fib(int i)//递归写法 { if (i int j = 0, k = 0,m=0,n=0; if (i n = j + m; } return n; } } 编写一个函数实现n的k次方,使用递归实现。

要求:k可以正数或负数

#define _CRT_SECURE_NO_WARINGS 1 #include float print_nk(int n,int k); int main() { int n = 0,k = 0; float num = 0; printf("输入分别为n的k次方\n"); scanf_s("%d%d", &n, &k); num=print_nk(n, k); printf("%f\n", num); return 0; } float print_nk(int n, int k) { if (k == 0) return 1; else if (k > 0) return n * print_nk(n, k - 1); else return (1.0 / n) * print_nk(n, k + 1); } 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

例如:调用DigitSum(1729),则应该返回1+7+2+9,它的和是19

输入:1729,输出:19

#define _CRT_SECURE_NO_WARINGS 1 #include int DigitSum(int n); int main() { int i = 0; int num = 0; scanf_s("%d", &i); num = DigitSum(i); printf("%d\n", num); return 0; } int DigitSum(int n) { int m=0; if (n if (length > 0) { printf("%c", string[length - 1]); reverse_string(string, length - 1); } else printf("\n"); } #include int Sumstrlen(char *str); int main() { int sum = 0; char str[] = {0}; printf("输入字符串\n"); scanf("%s", str); sum = Sumstrlen(str); printf("字符个数为%d\n", sum); return 0; } int Sumstrlen(char *str) { if (*str != '\0') return 1 + Sumstrlen(str+1); else return 0; } 递归和非递归分别实现strlen。 #include int Sumstrlen(char *str); int main() { int sum = 0; char str[] = {0}; printf("输入字符串\n"); scanf("%s", str); sum = Sumstrlen(str); printf("字符个数为%d\n", sum); return 0; } int Sumstrlen(char *str) { if (*str != '\0') return 1 + Sumstrlen(str+1); else return 0; }

由此可见我们发,在我们编写代码是运用函数可以极大的减小我们代码的复杂程度,在函数中适当的运用=递归与迭代思维可以帮助我们解决好多复杂问题。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有