c语言错误c2373,c语言第10次实验内容(函数2)邹显春

该实验内容依据教材 C语言程序设计实验教程邹显春 王建国主编高等教育出版社 制作人 邹显春 E Mail zouxc 掌握C语言程序设计的诀窍 重在上机实践 目标 熟练阅读 编写程序 实验10函数的嵌套 递归调用及变量的作用域 生存期 P40 说明 参考程序代码放在备注中 仅供大家对照检查 希望同学们本着对自己负责的精神 先独立完成 再看参考答案 一 实验目的 1 掌握用递归函数解决递归问题的方法2 理解变量作用域 及生存周期 二 实验内容 P40 43 2 设计性实验 为选做 温馨提示 1 验证性实验 按要求进行实验 所需要程序代码在网络平台的 课程导学 的 实验引导 中下载 三 实验内容示范 1 验证性实验 程序调试改错a 从 平台 上提供的代码文件test2 23 cpp中取代码 粘贴到编辑区中目的 掌握函数调用的方法 通过调试发现错误 该程序编译过程中的错误 Configuration test2 23 Win32Debug Compiling test2 23 cppd vctest test2 23 cpp 16 errorC2065 call undeclaredidentifierd vctest test2 23 cpp 21 errorC2373 call redefinition differenttypemodifiersd vctest test2 23 cpp 24 errorC2065 addition undeclaredidentifierd vctest test2 23 cpp 24 errorC2144 syntaxerror missing beforetype double d vctest test2 23 cpp 24 errorC2059 syntaxerror d vctest test2 23 cpp 26 errorC2065 subtractor undeclaredidentifierd vctest test2 23 cpp 26 errorC2144 syntaxerror missing beforetype double d vctest test2 23 cpp 26 errorC2059 syntaxerror d vctest test2 23 cpp 28 errorC2062 type double unexpectedd vctest test2 23 cpp 30 errorC2062 type double unexpectedd vctest test2 23 cpp 34 errorC2373 addition redefinition differenttypemodifiers 该程序编译过程中的错误 续 d vctest test2 23 cpp 34 errorC2562 addition void functionreturningavalued vctest test2 23 cpp 33 seedeclarationof addition d vctest test2 23 cpp 37 errorC2373 subtractor redefinition differenttypemodifiersd vctest test2 23 cpp 38 errorC2562 subtractor void functionreturningavalued vctest test2 23 cpp 36 seedeclarationof subtractor d vctest test2 23 cpp 41 errorC2562 multiple void functionreturningavalued vctest test2 23 cpp 40 seedeclarationof multiple d vctest test2 23 cpp 45 errorC2562 division void functionreturningavalued vctest test2 23 cpp 44 seedeclarationof division 执行cl exe时出错 请分析错误代码 找准出错部位 温馨提示 该题目有如下错误 函数未在调用前声明或定义函数在调用时使用了定义时的格式 不必标类型 函数在带值返回时 定义函数的类型与返回类型不一致 参考代码见备注 b 将自定义函数保存在函数名为名称的头文件中 使用 include包含在calculator cpp中说明 包含自定义的头文件 一定保证文件路径与cpp文件一致 并且 include后面使用 来引用头文件 温馨提示 由于函数call调用了其他函数 在主函数所在cpp文件中使用 include命令一定要注意顺序 必须保证函数在使用前已经完成了定义或声明 即其他函数的头文件应该先于call函数所在头文件之前被包含进来 include include addition h include subtractor h include multiple h include division h include call h call h请放在最后 程序调试从 平台 上提供的代码文件test2 24 cpp中取代码 粘贴到编辑区中 按照要求设置断点调试目的 掌握函数调试方法 理解调试中变量值的变化情况 解释 当单步运行或设置断点使用GO命令中断后 可在watch窗口手工添加变量看到其值 但在windowsXP下使用VC6 0存在一个bug 错误 看不到程序中定义的静态局部变量值 此时只能通过分析结果来估计它的变化 变量i未在函数中定义 i在主函数中 看不到其值 静态局部变量由于系统bug此时也看不到 运行结果 2 设计性实验 为选做 用嵌套调用的方法计算s 1 2 3 10 温馨提示 首先编写自定义函数求n的阶乘 再编写一个函数 内部循环调用阶乘并累加求和 主函数中直接调用求和函数 参考代码见备注 编写一个递归函数 求第n个Fibonacci数 调用该函数产生前40个数输出 Fibonacci数列中的任意第三个数是它前面两个数的和 即f n f n 1 f n 2 假若Fibonacci数列的前两个数分别是1和1 要求每行输出5个Fibonacci数 温馨提示 使用条件语句判断 如果传入函数的参数小于等于2时 返回1 否则返回它自身两个递归函数之和 这两个函数的参数使用目前参数减1和目前参数减2的值 参考代码见备注 编写一个递归函数 统计任意位正整数的位数 并在主函数中输入这个整数和输出统计的结果 要求有输入 输出提示 说明 限于VC整数的值域 输入的整数请勿大于4294967295 无符号整型 温馨提示 函数中判断传入的参数除以10后的结果 如果为0 则说明是1位数 此时返回1 否则返回1加上自身的递归调用 将自身参数除以10后传给递归函数 参考代码见备注 选做或课后完成 温馨提示 call函数可参照验证性实验 的方法实现 用模块化方法实现数组的查找 插入和删除等基本操作 要求 a 编写一个函数menu实现菜单的输出 b 编写函数find insert delet 分别用于实现数组的查找 插入和删除操作 要求以数组的指针为参数 注 删除不能取名delete 这是C 的一个运算符 c 要求编写一个call函数来调用find insert 或delet函数 d 要求所有操作完成后要有输出结果e 编写一个主函数调用上述函数 要求数据的输入 输出在主函数内完成 且有输入 输出提示 算法提示 查找操作可用折半查找方法 即通过不断调整要找的数落入的上下边界范围来定位该数插入的方法是先循环在原有序数组中比较 确定操作数应该插入的位置 然后再循环从数组最后位起每次将前一个元素向后搬移 最终留空插入的位置删除的方法是首先查找到要删的数在数组中的位置 再从该位起循环将当前后一位置的数前移 最后填充该位置 详细注释见代码部分 运行结果 参考代码见备注 用模块化方法实现找出一个4 5的二维数组中的鞍点 所谓鞍点是指行上最大且列上最小的元素 也可能没有鞍点 若有鞍点 要求输出鞍点的位置 鞍点的值以及鞍点的个数 若无鞍点 要求输出 无鞍点 的提示 温馨提示 为了使鞍点容易出现 使用1 10的随机整数填充 首先循环调用填充数组 然后编写一个两重循环 外循环按行 内循环行内比较 求得每行的最大值 需开辟一个一维的最大值数组来保存 再次编写一个两重循环 外循环按列 内循环按行求得每列最小值 同样要一个最小值数组 第三次编写两重循环 外循环按行 内循环按列 比较对应行最大值数组和对应列最小值数组是否相同 如果相同 则把原数组种对应值输出 即为一个鞍点 运行结果 参考代码见备注 在命令行中输入若干整数 计算并输出它们的和 要求使用有参主函数实现 温馨提示 有参主函数的形式为 voidmain intargc char argv 形参为命令行中输入的参数个数 包括生成的可执行文件名这个参数 argv为字符指针数组 其值为命令名和参数的指针 可使用stdlib h文件中的atoi函数将数字字符串转换成数值 也可自己变成实现字符串向数字转换函数 编译生成的可执行文件请在命令行中调用 运行结果 参考代码见备注 首先启动命令行窗口cmd 并切换到程序所在的目录下 生成的程序为add exe 输入格式为add数字1数字2 计算12 23 34 40的输入方法和结果

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值