当前位置: 首页 > news >正文

番禺网站排名推广优化排名html表单的完整代码

番禺网站排名推广优化排名,html表单的完整代码,网站建设费可以计入办公费用么,如何自学编程文章目录 前言实例1实例2 前言 在我们开始调试之前#xff0c;应该有个明确的思路#xff1b;程序是如何完成工作的、变量到达某个步骤时的值应该是什么、出现的问题大概会在什么位置。这些东西在调试之前都需要先确认下来#xff0c;不然自己都不知道自己在调试个什么东西… 文章目录 前言实例1实例2 前言 在我们开始调试之前应该有个明确的思路程序是如何完成工作的、变量到达某个步骤时的值应该是什么、出现的问题大概会在什么位置。这些东西在调试之前都需要先确认下来不然自己都不知道自己在调试个什么东西了。 实例1 题目内容 求 123 … n! 不考虑溢出。 使用调试分析出下面代码的问题是什么 注意不要用经验来判断问题出在哪全当第一次遇见这些代码光瞪眼肯定是没法解决问题的。 int main() {int i 0;int sum 0; //保存最终结果int n 0;int ret 1; //保存 n 的阶乘scanf(%d, n); //输入 3结果应该是1 2 3 9for(i1; in; i){int j 0;for(j1; ji; j){ret * j;}sum ret; //将 1 到 i 之间的数字累乘到 ret 上去就是 i 的阶乘}printf(%d\n, sum);return 0; }结果显然和我们想象中的有所出入。 调试分析 调试过程中我们需要观察 sum、ret、i、n 、j 这几个变量的值的变化。 调试过程中需要我们先给 n 输入一个值此时已经给了个 3 给 n。 第一次循环i 初始化为 1j 初始化为 1满足条件 j i进入内层循环。将 j 1 乘到 ret 上此时 ret 变为 1。 内循环完一遍之后 j 变成了 2。2 i 的条件就不成立了将算出的 1 的阶乘 到 sum 上去。此时 sum 变成了 1. 求完一遍阶乘之后令 i 变成了 2那么内循环就要算出 2 的阶乘重新令 j 初始化为 1满足循环条件将 j 1 乘到 ret 上去ret 的结果也是 1。 然后 j 变成 了 2将 j 2 乘 到 ret 上此时 ret 就变成了 2。 j 变成了 3不满足循环条件 j i退出循环然后将 ret 2 累加到 sum 上去此时 sum 变成了 3。目前为止还没有任务问题。 累加完了之后让 i 变成了 3满足 i n(3) 的条件现在要求 3 的阶乘。让 j 初始化为 1 从 1 开始 一直乘到 3。将 1 乘给 ret 之后发现ret 的值变成 2开始有点不对劲了。 j 变成 2将 j 2 乘 给 ret 此时 ret 变成了 4然后 j 变成了 3将 3 继续乘到 ret 上此时 ret 变成了 12ret 12 明显不是 3 的阶乘。所以问题应该就是出在这里了。因为 ret 是在循环体外面创建的在循环过程中 ret 的值被改了就回不到 1 了用会变的值来进行累乘结果肯定不如人意了。 最终将 ret 12 加到 sum 上去 3 12 结果 15 就这么出来了。 代码修改 将在循环体外部的 ret 放到循环体内部每次循环完一轮之后都让 ret 的值重新变回 1就不会影响最终结果了。 实例2 分析下面代码出现死循环的原因 前提该代码仅限在 VS X86 环境 Debug 模式下验证。 #include stdio.hint main() {int i 0;int arr[10] { 1,2,3,4,5,6,7,8,9,10 };for(i0; i12; i){arr[i] 0;printf(hello word!\n);}return 0; }调试分析 很明显数组访问是直接越界了但是前面 9 次的赋值是没有问题的。 再观察 i 的值在数组越界到 10、11 的时候i 的值都还算正常。可唯独到了 arr[12] 的时候i 的值居然被改成 0也就是说i 和 arr[12] 挂上了钩arr[12] 只要被赋值成 0i 也会被改成 0i 无法自增到 13 自然就无法退出循环直接就导致死循环了。 此时再观察 arr[12] 以及 i 的地址会发现这两个家伙在你不知情的情况下已经住到同一个地址去了难怪将 arr[12] 改为 0 会让 i 也跟着一块变。 代码分析 现在要创建一个局部变量 i 为 i 在栈上先分配一块空间然后再创建数组 arr 为 arr 分配一快空间局部变量都是按照栈的方式从搞地质向低地址使用创建的也就是说先被创建出来的 i 在内存中 在 arr 数组的下面。 数组按照往下越界得情况来看的话arr[12] 刚好就越界到了 i 所在的空间。在前提中提到过的特殊情况下先创建的 i 与 后创建的 arr 数组之间就是隔着两个整型的空间所与才会越界越着越着就让摸到 i 了。 问题解决方案 这段代码最大的问题就是数组的越界访问没啥可说的把这个改过来就行了。 #include stdio.hint main() {int i 0;int arr[10] { 1,2,3,4,5,6,7,8,9,10 };for(i 0; i 10; i){arr[i] 0;printf(hello word!\n);}return 0; }
http://www.w-s-a.com/news/570265/

相关文章:

  • 成都网站建设开发公司哪家好验证码插件 wordpress
  • 企业网站设计要点泰州市网站制作公司
  • 网站用户运营北京官方网站怎么做
  • 农业门户网站开发做首图的网站
  • wordpress 素材站模板怎么制作网站程序
  • 做ps合成的网站wordpress付费查看下载主题
  • 个人网站建设完整教程wordpress服务器搬迁
  • wordpress.主题广州 网站优化
  • 手机版网站怎样做推广如何用asp做视频网站
  • dede 网站打开慢七牛云 微信 打开 wordpress
  • 哪里网站建设公司比较好教育培训类网站模板
  • 中国建设银行官网首页网站wordpress小工具不能完全显示
  • 企业网站的开发流程是什么网站开发怎么销售
  • 现在网站还用asp做男科医院哪家好一些
  • 服装设计网站素材郑州汉狮做网站网络公司
  • 宜州做网站做仿制网站
  • 中山营销型网站厦门工程建设招聘信息网站
  • 网站开发 外包空心找回微信
  • 长沙市网站推广多少钱网站开发流程图和介绍
  • 网站后缀net施工企业自建自用的工程可以不进行招标是否正确
  • 鄂尔多斯市住房和城乡建设厅网站帮别人做网站赚钱6
  • 宜选科技就是帮人做网站动漫制作专业主修课程
  • 怎么做网站免费的教程温州捷创网站建设
  • 做免费推广的网站有哪些深圳华强北最新消息
  • 电子商务网站建设规划开题报告桂林漓江景区游玩攻略
  • 程序员参与洗钱网站建设做视频网站需要多少钱
  • 网站建设背景是什么企业邮箱怎么写
  • 山东省建设资格中心网站iis wordpress安装教程
  • 做的网站 显示乱码怎么做微信小程序平台
  • 怎样建设打字网站怎样增加网站浏览量