![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
函数
文章平均质量分 52
余思荷
记录余小荷的进步过程,为了成为一个优秀的程序媛!给老子冲!
展开
-
【Python】案例九 Python在科研中的优势/倒序遍历/进制转换
一、为什么Python中整型不会溢出在python2时代,整型有 int 类型和 long 长整型,长整型不存在溢出问题,即可以存放任意大小的整数。在python3后,统一使用了长整型。这也是吸引科研人员的一部分了,适合大数据运算,不会溢出,也不会有其他语言那样还分短整型,整型,长整型…因此python就降低其他行业的学习门槛了。二、【Python】倒序循环 倒序遍历python倒序遍历三、Python format 格式化函数format函数可以格式化输出数据并且决定输出的顺序四、pytho原创 2022-03-14 20:09:31 · 9054 阅读 · 0 评论 -
【Python】案例六 函数
Python 函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。定义一个函数你可以定义一个由自己想要功能的函数,以下是简单的规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明原创 2022-02-10 09:40:35 · 240 阅读 · 0 评论 -
【实习日记】 第七天 加入相似的新功能➕学习访问联系人,通讯录,群组的方式
今天出门比较晚没自行车了差点迟到,幸亏有个老大爷过来投放自行车……神仙大爷,救我狗命。我今天在ding-dong.bot的包里发现了之前有人编好的程序,功能甚至还很齐全,可以访问联系人,访问群组,甚至可以推名片,惊了。先捋顺example源码,然后看看有没有机会把现有的功能加进去(可惜人家给的是javascript代码)进度还可以,但今天状态一般,能看多少看多少啊!!冲啊!首先先成功运行example代码: (已加入相似功能)结果如下:图一:登陆界面图二:原有功能(发ding回dong)原创 2021-10-12 10:01:39 · 84 阅读 · 0 评论 -
【C语言】综合案例六十二 回文字符串(方法一)
案例描述回文字符串是正反读都一样的字符,比如“level”,"noon"都是回文字符串。案例要求从键盘输出字符串,并判断字符串是否为回文字符串。案例分析判断一个字符串是否为回文字符串时常用的方法有两种使用递归来解决问题使用指针来解决问题案例实现方法一通过观察可以知道,去掉回文字符串尾的字符后,剩下的字符串仍然是回文字符串,通过不断的去除首尾的字符,一层层检查,可以缩小问题的规模。去掉字符串首尾字符串后,得到一个子串,此时产生的新问题是检查子串是否为回文字符串,然后就发现可以用递归解决问题原创 2021-09-07 21:10:18 · 1881 阅读 · 1 评论 -
【C语言】案例六十六 文件包含
案例描述在程序中设计时需要很多输出格式,如整型,实型和字符型等等,在编写程序时会经常使用这些输出格式,如果多次书写这些格式会很繁琐,要求设计一个头文件,将经常使用的输出模式都写进头文件中,方便编写代码。案例分析除宏定义之外,文件包含也是一种预处理,它的作用就是将一个源程序晚间包含到另一个源程序文件中。本案例适合采用这种预处理语句。必备知识文件包含命令的形式同引入头文件一样,文件包含也是通过#include指令实现的,它的语法格式有两种,具体如下:格式一:#include <文件名>原创 2021-09-04 17:39:50 · 409 阅读 · 0 评论 -
【C语言】案例六十三 最简单的预处理【编译和预处理】
案例描述本案例要求将矩形的长和宽设置为宏,然后再求出矩形的面积。案例分析宏定义是预处理最常用的功能之一,它用于讲一个标识符定义为一个字符串,这样在源程序被编译器处理之前,预处理器会将标识符替换成所定义的字符串。根据...原创 2021-09-04 10:32:36 · 156 阅读 · 0 评论 -
【C语言】案例六十二 回文字符串(方法二)
案例描述回文字符串是正反读都一样的字符,比如“level”,"noon"都是回文字符串。案例要求从键盘输出字符串,并判断字符串是否为回文字符串。案例分析判断一个字符串是否为回文字符串时常用的方法有两种使用递归来解决问题使用指针来解决问题案例实现方法二1,案例设计用两个指针分别指向字符串开头和字符串末尾,判断两个指针所指向的字符是否相同如果不相同直接返回0,表示此字符串不是回文字符串;如果相同,则把指向字符串的开头的指针加一,向后移动并指向下一个字符,同时把指向某位的指针减一,然后继续原创 2021-09-03 18:09:11 · 720 阅读 · 0 评论 -
【C语言】案例六十一 综合案例:密码
案例描述此案例要求设计一种算法,把电文加密之后变成密文,利用解密函数解密,显示出明文的内容。案例分析将电文每个字符加上偏移值3,以字符“itcast”为例,对应字符“i”为“l”,对应字符“t”为“w”.案例实现1,案例设计先设计一个while循环,在循环中实现加密或者解密定义两个字符数组,用来保存明文和密文;第一次进入程序,默认使用加密功能,再之后根据文字提示可进行解密、加密或者退出程序的功能、2,完整代码#include <stdio.h>#include <原创 2021-09-02 17:45:30 · 319 阅读 · 0 评论 -
【C语言】案例六十 字符串的其他常用函数【atoi()itoa()sprintf()】
在编程时有时需要将字符串转化为整数,或将整数转换为字符串,如将字符串表示的IP地址转化为十进制整数,就需要用到字符串与整数转化的函数。下面介绍两种字符串与整数的转换函数。atoi()函数此函数用于将一个数字字符串转换为十进制数,其函数原形如下:int atoi(const char* str);atoi()函数接收一个字符串作为函数,返回转换后的十进制数。如果转换失败,则返回0.需要注意的是,atoi()函数的声明位于stdlib.h文件中,因此需要使用include指令引用头文件stdlib原创 2021-09-02 11:26:05 · 136 阅读 · 0 评论 -
【C语言】案例五十九 检查字符串1中是否有字符串2
案例描述如题案例分析我们需要用到字符串查找的知识,解决思路分为三步:分别从键盘中输入str1和str2调用字符串查找函数来确定题目最后将结果输出到屏幕上必备知识字符串查找函数在程序中,经常需要从字符串中查找指定信息,比如,统计一段文字中某个词语出现的次数。C语言提供了strchr()函数、atrrchr()函数、strstr()函数来实现对字符串的查找功能,接下来将针对这三个函数进行详细解释。strchr()函数此函数用于查找指定字符在指定字符串中第一次出现的位置,其函数原型如下原创 2021-09-01 21:42:32 · 1642 阅读 · 0 评论 -
【C语言】案例五十七 不使用strcpy函数进行复制操作
案例描述如题案例分析可以使用gets函数和puts函数进行复制操作,实现字符的获取和输出案例实现声明两个字符数组输入字符数组1后,通过循环将字符逐个输入字符数组2中打印完整代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>int main(){ char s1[50]; char s2[50]; int i = 0; pr原创 2021-09-01 17:35:59 · 1659 阅读 · 0 评论 -
【C语言】案例五十六 在指定位置插入字符【strncat()函数strncat()函数strcpy()函数】
案例描述案例要求输入一个字符串和一个要插入的字符,然后输入要插入的位置,在指定的位置插入指定的字符,并将新字符串输出到屏幕上。必备知识1,字符串连接失败在程序开发时,可能会将两个字符串进行连接,为此C语言提供了strncat()函数和strncat()函数来实现连接字符串的操作,讲解如下:(1)strncat()函数将一个字符串接到另一个字符串的后面,原型如下:char* strcat(char* dest,const char* src);表示将指针src指向字符串接到指针dest指向的原创 2021-09-01 17:18:55 · 6102 阅读 · 0 评论 -
【C语言】案例五十五 一句话中的单词数量
案例描述要求编程求出一句话中到底有多少单词。首先在屏幕上输入一句话,每个单词之间用一个空格隔开,要求第一个字符和最后一个字符都不能为空格;然后统计出这句话的单词数量,并把结果输出到屏幕上。案例分析本代码应实现以下功能:使用字符数组变量接收gets()函数获取的字符串计算字符数组中的空格数量,推算出此句话中的单词数量将统计结果输出案例实现1,案例设计首先使用gets()函数将输入的字符串保存在str数组中然后使用if语句判断用户输入的第一个字符是否为结束符,如果是,则要给出“这句话没原创 2021-09-01 11:28:27 · 715 阅读 · 0 评论 -
【C语言】案例五十三 删除字符串中子串【gets()函数 puts()函数】
案例描述从键盘输入一个字符串,输入要删除的字符串起始位置及长度,然后输出删除后的字符串。案例分析若要删除字符串中的子串,需要使用该子串后的字符从要删除的地方开始,逐一往前移动覆盖待删除字符。之前学习过的printf()函数和scanf()函数,他们分别用于向控制台中输出内容和从控制台上接受用户的输入。C语言还提供了针对字符串读取和输出的函数,即puts()函数和gets()函数。使用这两个专用函数能更顺利的完成此案例必备知识1,gets()函数gets()函数用于从控制台读入用户输入的字符串,原创 2021-09-01 11:01:46 · 1469 阅读 · 0 评论 -
【C语言】案例五十二 字符串替换(二)【字符,字符串,字符数组】
案例实现1,案例设计自定义一个具有字符串替换功能的函数使用for循环从指定位置遍历字符串“Good moring”;用字符串“evening”中的字符逐一替换掉字符串“Good moring”中“morning字符串主函数中调用字符串替换函数最后将替换后的字符串输出到屏幕上2,完整代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>/原创 2021-09-01 09:14:25 · 996 阅读 · 0 评论 -
【C语言】案例五十一 员工档案管理系统
让我用心把你(的赞)留下来!案例描述本系统是员工档案管理系统,该系统包括姓名,性别,工号,年龄。进入系统输入密码,若密码错误三次则退出程序,此外,有输入数据,查看数据,数据查询,数据保存,数据排序等多项功能//初始密码为123456#include "stdio.h"#include "string.h"#include "stdlib.h"#include "malloc.h"#define OP sizeof(stu) typedef struct student{ char原创 2021-08-27 10:56:25 · 1123 阅读 · 0 评论 -
【C语言】案例五十 歌曲管理系统
让我用心把你(的赞)留下来!#include "stdio.h" #include "stdlib.h" #include "string.h" #include "ctype.h" #define M 50 /*定义常数表示记录数*/ typedef struct /*定义数据结构*/ { char songname[20];/*歌曲名*/ char name[20]; /*作者*/ char singer[20]; /*演唱者*/ char year[20]; /*年月日*/ }原创 2021-08-27 10:52:47 · 3471 阅读 · 1 评论 -
【C语言】案例四十九 学生档案管理系统
我仿佛已经明白了备受关注的密码所以你们期待已久的系统又来啦!(给我点赞!)案例描述本系统是学生档案管理系统,进入系统输入密码,若密码错误三次则退出程序,此外,有输入数据,查看数据,数据查询,数据保存,数据排序等多项功能完整代码://初始密码为123456#include "stdio.h"#include "string.h"#include "stdlib.h"#include "malloc.h"#define OP sizeof(stu) typedef struct stude原创 2021-08-27 10:50:51 · 2027 阅读 · 7 评论 -
【C语言】案例四十八 综合案例——天生棋局(围棋棋盘)
案例描述本案例要求创建一个棋盘,在棋盘生成的同时初始化棋盘,根据初始化后棋盘中棋子的位置来判断此时的棋局是否为一局好棋。具体要求如下:棋盘的大小根据用户的指令确定棋盘中的棋子数量也由用户指定棋子的位置由随机函数随机确定,若生成的棋盘中有两颗棋子落在同一行或者是同一列,则判定为”好棋“,否则判定为“不是好棋”案例分析本案例需要根据用户输入的数据分别确定棋盘的大小和棋子的数量,所以棋盘大小和棋子数量是不确定的。为了避免存储空间的浪费,防止因空间不足造成的数据丢失,本案例可动态的申请堆上的空间,来原创 2021-08-27 10:24:55 · 2437 阅读 · 2 评论 -
【C语言】案例四十六 点名册(二)【strcpy()函数】
案例实现点名册中每个学生姓名都可以定义为一个字符数组,为了能统一操作点名册中的学生姓名,应使用指针数组,使数组中的每个指针都指向一个学生姓名。同时可以定义一个二级指针(数组指针),使该指针指向指针数组,使用二级指针读取点名册中的学生姓名。完整代码#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char buf[1024]; //普通数组,存储学生姓原创 2021-08-26 10:54:25 · 351 阅读 · 0 评论 -
【C语言】案例四十五 数据表(二)(调试代码,解答疑惑)
案例描述本案例主要是建立数据表实现任意一行/列的相加讲解的主要知识有两个:一是函数指针,该知识将在选择求和函数时使用;二是指针与二维数组的联系。本案例中的存储基于二为数组,数据的获取利用数组指针,下面分别讲解这两个知识点:案例实现1,案例设计创建一个二维数组,使用循环语句为其赋值在循环结构中使用指针读取数组中的数据并输出根据案例要求,在程序中使用两个函数分别实现不同方式的求和计算同时在主函数中创建函数指针,当用户做出选择后,根据选择结果调用函数————————————————版权声明:本原创 2021-08-26 09:20:15 · 114 阅读 · 0 评论 -
【C语言】案例四十六 点名册(一)
案例描述案例要求编程实现一份基于指针的点名册,记录学生的姓名,并能实现学生姓名的输出;点名册中的学生姓名由多个字符组成,点名册中包含不止一名学生。案例分析将每个学生视为一个字符数组,则点名册中的内容可以视为多个字符数组的集合。如若每个学生姓名字节数都相同,那么点名册可以视为一个二维数组,但实际上,学生姓名字节可能各不相同。所以,需要考虑的问题有两个:如何使用不同长度的字符数组存储学生的姓名如何将多个存储学生姓名且长度不同的字符数组联系起来,使之成为一个整体考虑到学生姓名逐条储存,类似于二维数组原创 2021-08-26 09:00:33 · 407 阅读 · 0 评论 -
【C语言】案例四十五 数据表 [函数指针]
案例描述本案例主要讲解的主要知识有两个:一是函数指针,该知识将在选择求和函数时使用;二是指针与二维数组的联系。本案例中的存储基于二为数组,数据的获取利用数组指针,下面分别讲解这两个知识点:必备知识1,指针与二维数组在之前的案例中,我们学习了如何用指针引用一维数组,二维数组与多维数组同样有地址,也可以使用指针引用,只是因为其逻辑结构较一维数组复杂,所以操作也比较复杂。这里我们来介绍指针和二维数组的关系。假设要定义一个二行三列的二维数组,示例如下:int a[2][3] = {{1,2,3}{4,5原创 2021-08-24 23:44:43 · 407 阅读 · 0 评论 -
【C语言】案例四十四 快速排序
案例描述快速排序是对冒泡排序的改进,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的数据比另一部分的都小,然后再按此方法,对两部分数据分别进行快速排序,整个排序过程可以递归进行,直到整个数据变成有序序列为止。相比于冒泡排序,快速排序在时间,性能上有大大的提升,本案例要求用指针实现快速排序算法,并将结果逐个输出。案例分析设,要排序的数组是S[],首先任选一个数据(一般选择数组的第一个)作为关键数据(key),然后将所有比关键值小的数都放到关键值之前,所有比关键值大的数都放到关键原创 2021-08-23 22:09:30 · 239 阅读 · 3 评论 -
【C语言】案例四十二 指针取值,内存分配,内存回收
指针和一位数组一个普通变量有地址,一个数组包含若干个变量,数组中的每个元素都在内存中占据存储单元,所以每个元素都有各自地址。指针可以通过变量的地址访问相应的变量,当然也可以根据指针的指向来访问数组中的元素其定义如下: int[a] = {1,2,3,4,5}; int* p = NULL; //定义一个指针 p = &a[0]; //使指针指向数组中元素a[0]其实也可以使指针直接指向数组a[]。数组名实际上是一个指向数组首地址的指针,也就是指向数组中第一个元素的指针,但原创 2021-08-20 14:39:05 · 913 阅读 · 0 评论 -
【C语言】案例四十一 猜宝游戏
案例描述甲乙一起玩猜硬币的游戏:初始时,甲的左手握着一枚硬币,游戏开始后,甲进行有限次或真或假的交换,最后由乙来猜两只手中是否有硬币。写明案例,实现游戏过程。案例分析因为游戏要执行有限次,所以需要首先确定交换进行的次数,通过循环执行每次交换,又因为每次交换真假不确定,所以至少需要实现两个交换函数,一个函数真正的实现两只手的交换,另一个只需要表面完成交换。而每次是否真正交换硬币也是随机的。因此使用随机数发生器来决定每次选择执行的函数。必备知识1,指针作为参数函数在C语言中,实参和形参之间的数据传递原创 2021-08-20 09:39:51 · 610 阅读 · 0 评论 -
【C语言】指针大法好!
指针是C语言中一种特殊的变量类型,与其他类型的变量不同,指针存储的不是变量,而是变量的地址,正确的使用指针,可以使程序更为简洁高效。指针是C语言中的精髓,同时也是C语言中最难掌握的部分。指针与指针变量1,指针的概念如果在程序中定义一个int a ,那么编译器会根据变量类型,为其分配4个字节地址连续存储空间,若这块空间的首地址为0x0037FBCC,那么这个变量占据0x0037FBCC - 0x0037FBD0(十六进制)这四个字节的空间,0x0037FBCC就是这个变量的地址。因为通过变量的地址可以找原创 2021-08-18 10:08:00 · 78 阅读 · 0 评论 -
【C语言】案例三十八 双色球
案例描述双色球是中国福利彩票目前最火的一种玩法。每注投注号由六个红色号球和一个蓝色号球组成,红色号码从1~33中选择,蓝色从1-16中选择,每期开出的红色球号码不能重复,但蓝色球可以是红色球中的一个。案例分析显然需要用到之前学过的随机数知识,但是需要注意每期开出的号码不能重复,而使用随机函数可能会产生重复的号码,因此在编程时需要判断新生成的红色球号码是否已经存在,如果号码与已经生成的红色球号码重复了,则需要生成新的红色球号码。案例实现1.案例设计先使用系统定时器的值作为随机数的种子,为随机数的原创 2021-08-15 16:35:31 · 3521 阅读 · 5 评论 -
【C语言】案例三十七 矩阵转置
案例设计先分别输入数组的行数和列数然后逐个输入数组中的元素,元素个数为刚刚输入的行数与列数的乘积通过for循环进行转置最终将统计出的结果输出到屏幕上完整代码#include <stdlib.h>#include <stdio.h>int main(){ int i,j,n,m; int a[10][10],b[10][10]; printf ("请输入行数:\n"); scanf("%d",&n); printf ("请输入列数:\n"原创 2021-08-15 11:38:52 · 244 阅读 · 0 评论 -
【C语言】案例三十六 兔子去哪了?
案例描述一只小兔子躲进十个环形分布的洞中的一个。狼在第一个洞中没有找到兔子,就隔一个洞,到第三个洞去找。也没有找到,就隔两个洞,到第六个洞去找。以后每多一个洞去找小兔子,这样下去吃,如果一直找不到小兔子,请问兔子可能在哪个洞中。案例设计用数组记录每个洞对应的标记。在查找之前,将所有洞都标记为一,表示该洞尚未查找;若查找的洞里没兔子,将其标记为零。数组标记为一的洞是尚未被查找过的,兔子可能藏身的洞。查找步骤如下:(1)先设置数组中所有元素的初始值为1(2)然后用for循环穷举搜索,假设最大搜索次数为原创 2021-08-14 11:53:14 · 908 阅读 · 1 评论 -
【C语言】案例三十五 杨辉三角(二维数组)
案例描述杨辉三角样式如下:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1本案例要求在屏幕上打印杨辉三角的前十行案例分析对杨辉三角的图形规律进行总结:第n行的数据有n项每行端点数为1,最后一个数也为1每个数等于它左上方和上方的两数之和每行数字左右对称,由1开始逐渐增大根据以上总结的规律,可以将杨辉三角看做一个二维数组,并使用双层循环控制程序流程,为数组中的元素逐一赋值:即arr[i][j] = arr[i - 1][j - 1] + arr[i原创 2021-08-14 11:21:54 · 1112 阅读 · 0 评论 -
【C语言】案例三十四 校园十大歌手(冒泡排序)
案例分析首先将每位歌手的得分储存到一维数组中,其次构建一个排序函数,使用函数实现对一维数组的排序,因此需要将一维数组作为函数函数参数传入函数。必备知识一维数组作为函数参数在程序中,为了方便对数组的操作,经常会定义一些操作数组的功能函数,这些函数将数组作为函数参数,在数组作为函数参数时,必须要保证形参与实参的数组是相同类型,且有明确的数组说明。如数组维度,数组大小等。例如下面两种参数类型:func(int arr[5]);func(int arr[],int n);这两种参数类型都指定了原创 2021-08-12 22:00:48 · 2254 阅读 · 0 评论 -
【C语言】案例三十一 数组的非法操作
对于基本数据类型,相同的类型的变量可以进行加减,比较运算,但对于数组,即使是相同的类型,相同大小的数组,有些操作也是非法的,具体如下:用一个已经初始化的数组为另一个数组赋值int x[5] ={1,2,3};int y[5] ;y = x ;//错误操作 对数组进行整体输入输出int x[5] ={1,2,3};printf("%d",x);//错误操作 int y[5] ={4,5,6};printf("%d %d %d",y[0],y[1],y[2]);//正确操作 数原创 2021-08-11 09:36:23 · 828 阅读 · 0 评论 -
【C语言】案例三十 【数组】最大值和最小值
案例描述本案例要求先输入数组的大小和各个数组元素,然后求出数组中的最大值和最小值以及他们所在的位置,依次输出到屏幕上案例分析本案例是应用一位数组的典型案例。C语言中规定,只能逐个引用数组中的元素,而不能引用整个数组。在对数组进行判断时,只能通过循环对数组元素进行逐个引用,获取每一个元素值进行两两比较,找出其中的最大和最小元素。必备知识一维数组的定义与初始化一位数组也称向量,他以组织具有一位顺序关系的一组同类型数据。在C语言中,一维数组的定义方式如下所示:数据类型 数组名[常量表达式]原创 2021-08-10 22:07:17 · 6690 阅读 · 0 评论 -
【C语言】案例二十九 综合案例——体育成绩管理系统
案例描述体侧所含项目与每项所占比例如下表所示:单项指标权重体重指数(BMI)15肺活量1550米20坐位体前屈10立定跳远10引体向上(男)/仰卧起坐(女)101000米(男)/800米(女)20这个博客上插入表格实在是太诡异了。我输入了好几遍体育成绩评分细则如下表:优秀95~100良好80~94及格60~79不及格<60各项指标评分细则如下:在这里插入图片描述...原创 2021-08-10 18:36:29 · 1450 阅读 · 8 评论 -
【C语言】案例二十八 综合案例——RSA算法
RSA算法是世界上最具有影响力的公钥加密算法,密钥越长就越难破解,能抵御绝大多数的密码攻击,非常可靠,该密码的安全性无法验证,而是基于一个非常简单地数论事实。将两个大素数相乘非常容易,但要对其结果进行因式分解则非常困难。一般认为1024位的RSA密钥基本安全,2018位的密钥完全安全。RSA算法是非对称加密算法的代表。对称加密算法中使用同一个密钥进行加密或者解密而非对称加密算法需要一组密钥,公钥和私钥。公钥和私钥是一对,如果用公钥对数据进行加密,只有用对应私钥才能解密,如果用私钥进行加密,那么只有用对应.原创 2021-08-10 15:33:09 · 1402 阅读 · 1 评论 -
【C语言】案例二十七 汉诺塔
汉诺塔的数字符合规律:f(n + 1) = f(2n) +1终止条件为n = 1 符合递归算法的思想,所以本例使用递归来实现完整代码#include <stdlib.h>#include <stdio.h>int getnum (int n){ if (n == 1 ) return 1; else return 2 * getnum(n - 1) + 1;}int main(){ printf("f(1)=%d\n",getnum(1));原创 2021-08-09 21:44:46 · 81 阅读 · 0 评论 -
【C语言】案例二十六 :求平均值【函数】
案例描述用键盘输入一组数据,求出这一组的平均值并输出。案例分析本案例中可以将“求一组数据的平均数”视为一个功能并提取出来,构造成一个函数,在实现案例中,先学习一下函数的相关定义及概念。函数的定义在C语言中,最基础的程序模块就是函数,函数被视为程序中的基本逻辑单位,一个C程序是由一个main()函数和若干个普通函数构成的。返回值类型 函数名([[参数类型,参数名1],[参数类型,参数名2],…[参数类型,参数名n]]) { 函数体 …… return 返回值; }函数调用时的数据原创 2021-08-09 21:30:30 · 27521 阅读 · 2 评论 -
【C语言】案例二十五 兔子数列(斐波那契数列)
案例描述兔子数列又称斐波那契数列,黄金分割数列,具体描述如下:一对兔子在出生两个月后,每个月都能生出一对小兔子,现有一对刚出生的兔子,假设所有兔子都不死,那么一年后有对少只兔子?案例分析n表示月份,则兔子数量为一个关于n的函数f(n)满足:f(n) = f(n - 1) + f(n + 2) (n > 1)必备知识所谓递归即程序对自身的调用,是过程或函数在其定义或说明中直接或间接调用自身的一种方法。他通常把一个大型的复杂问题层层转化成一个与原问题相似但规模较小的问题来求解。递归只需要少原创 2021-08-09 21:27:32 · 3172 阅读 · 1 评论 -
【C语言】 案例二十四 内部函数与外部函数
今天讲一些轻松的东西要知道,函数本质上是全局的,但我们可以限定函数能否被别的文件所引用。当一个源程序由多个源组件组成时,C语言根据函数能否被其他源文件中的函数调用,将函数分为内部函数与外部函数。(1)内部函数开发大型项目时,为了便于团队间协同工作,需要把一个项目拆分成许多源文件来分别实现,最终再把他们整合在一起,但是不同的开发人员可能使用同名的函数,又因为函数本质是全局的,因此在引用时容易产生二义性。为了解决这一问题,C语言使用关键字static来标识内部函数。内部函数是在其返回值类型前添加stati原创 2021-08-09 19:28:32 · 484 阅读 · 0 评论