函数原型声明的方法和位置 1.函数原型声明的方法 函数返回值类型函数名(形参列表) 形参列表可以只是形参类型列表,不指出形参的名字 2.函数原型声明的位置: 放在所有函数外面,源程序文件开头的地方 优点:凡是在该声明之后定义的函数,无需再进行函数原 型声明即可调用该函数。 C语言程序设计
C语言程序设计 16 1. 函数原型声明的方法 函数返回值类型 函数名 (形参列表) ; 形参列表可以只是形参类型列表,不指出形参的名字 函数原型声明的方法和位置 2. 函数原型声明的位置: • 放在所有函数外面,源程序文件开头的地方。 • 优点:凡是在该声明之后定义的函数,无需再进行函数原 型声明即可调用该函数
函数原型声明:例 int func(int x, int y, char op) 注意:有分号 int maino 在所有函数之外 int a=3 b=5. result: 源程序文件开头进 行函数原型声明 result=func(a,b,’*’); Int func(int x, int y, char op) ●●●●●● 注意:没有分号 C语言程序设计
C语言程序设计 17 Int func(int x, int y, char op) { … … } 函数原型声明:例 int func(int x, int y, char op) ; int main() { int a = 3, b = 5, result; …… result = func(a, b, '*' ); …… } 在所有函数之外, 源程序文件开头进 行函数原型声明。 注意:有分号 注意:没有分号
6.2递推 递推是计算机数值计算中的一个重要算法。思 路是通过数学推导,将复杂的运算化解为若干 重复的简单运算,以充分发挥计算机长于重复 计算的特点。 任务63ABCD,E合伙夜间捕鱼,凌晨时都 疲惫不堪,各自在河边的树丛中找地方睡着了。 日上三竿,A第一个醒来,他将鱼平分成5份 把多余的一条扔回湖中,拿自己的一份回家去 了;B第二个醒来,也将鱼平分为5份,扔掉多 余的一条,只拿走自己的一份;接着CDE依 次醒来,也都按同样的办法分鱼。问5人至少 合伙捕到多少条鱼?每个人醒来后看到的鱼数 是多少条? C语言程序设计
C语言程序设计 18 6.2 递推 ◼ 递推是计算机数值计算中的一个重要算法。思 路是通过数学推导,将复杂的运算化解为若干 重复的简单运算,以充分发挥计算机长于重复 计算的特点。 ◼ 任务6.3 A,B,C,D,E合伙夜间捕鱼,凌晨时都 疲惫不堪,各自在河边的树丛中找地方睡着了。 日上三竿,A第一个醒来,他将鱼平分成5份, 把多余的一条扔回湖中,拿自己的一份回家去 了;B第二个醒来,也将鱼平分为5份,扔掉多 余的一条,只拿走自己的一份;接着C,D,E依 次醒来,也都按同样的办法分鱼。问5人至少 合伙捕到多少条鱼?每个人醒来后看到的鱼数 是多少条?
任务6.3 解题思路 假定 ABCDE的编号为1,2,3,4,5,整数数组 fish[k表示第k个人所看到的鱼数。 显然 fish[1]=5人合伙捕到的总鱼数 fisk[2]=(fsh[1-1)*4/5 fish[3]=(fish[2]-1)*4/5 fish[4]=fsh[3]-1)*4/5 fish[5]=(fsh[4]-1)*4/5 即fish[]=(fsh-1]-1)*4/5且 fish[i-1]%5==1 或fish[-1]=fsh[]*5/4+1且fish[]%4==0(>1) C语言程序设计
C语言程序设计 19 任务6.3 解题思路 假定A,B,C,D,E的编号为1,2,3,4,5,整数数组 fish[k]表示第k个人所看到的鱼数。 显然: fish[1]=5人合伙捕到的总鱼数 fisk[2]=(fish[1]-1)*4/5 fish[3]=(fish[2]-1)*4/5 fish[4]=(fish[3]-1)*4/5 fish[5]=(fish[4]-1)*4/5 即fish[i]=(fish[i-1]-1)*4/5,且fish[i-1]%5==1 或fish[i-1]=fish[i]*5/4+1,且fish[i]%4==0(i>1)
#include < iostream /2,人 using namespace std A醒来后看到的鱼数为:3121 dint maino 申醒来后看到的鱼数为:2496 F1.:c醒来后看到的鱼数为:1996 int b醒来后看到的鱼数为:1596 d 乍醒来后看到的鱼数为:1276 fish[5]= fish[5]+5 //fish[5]要满足fish[5]%5=-1,因此每次递增5 for(i=4: i>=1:i if(fish[i+1]%4==0) //满足条件 fishlil fish[i+1]=5/4+1 //计算下一个人看到的鱼数 el //退出当前循环 J while(i>=1) /′如果所有的fish[i]均满足条件,则for循环结束时 //i的值将为0,因此,若i的值不为0,说明还未打到解 for(i=1;i<=5;i+ cout<<char(i+64)<<"醒来后看到的鱼数为:"<fish[i]<end1 return 0;1 ■程序:64.cpp C语言程序设计
C语言程序设计 20 任务6.3 解题思路(续) ◼ 按题意要求5人合伙捕鱼的最少鱼数,可以从小 到大枚举 。取fish[5] 的值为6 , 1 1 , 1 6 , 21, …依次计算fish[4], fish[3], fish[2], fish[1] 的 值 , 并 比 较 其 是 否 满 足 fish[i+1]%4==0(i=4,3,2,1), ◼ 如果某次计算不能满足,则退出本次循环,继 续从下一个fish[5]开始进行计算,如果所有的 fish[i]均满足条件,则退出循环,得到结果。 ◼ 程序:6_4.cpp