一、PTA实验作业

6-3 使用函数判断完全平方数:

1. 本题PTA提交列表:

2. 设计思路:

3.本题调试过程碰到问题及PTA提交列表情况说明:

  • 1.一开始考虑让输入值N去整除一个循环变量i,i随着循环次数改变而改变,N每次除两次i,能得到1的值时便为完全平方数,返回1值,否则当i>N/2循环结束,则返回0值;一开始觉得这个做法很可行,但实际上一经运行调试后发现错误很多,后来发现是因为没有考虑1和0的特殊性,但是就算考虑了也仍不对,在同学的建议下用了逆向思路即若i*i==N,return 1;用i值来凑N值;然后现在又用第一次的思路做了一遍,想弄清之前思路到底错哪儿,却发现一次就过,这才明白先前没有弄懂当被调用的函数一旦Return后就不会再执行后面的语句,所以之前考虑了一堆条件,越复杂越容易错;

  • 2.这张是现在用一开始的思路做的正确答案;
  • 3.可是后来又发现了一个问题,当被调用函数返回一个值后不是应该马上结束执行吗,为什么当我把if(n==0||n==1) return 1;语句放在循环外时是对的,而将其放在循环里面时则不正确,似乎是个无效语句???

  • 4.这张图是把if(n==0||n==1) return 1;语句放在循环内,是错误的,不知道为什么???希望有大神帮忙解答;

6-6 使用函数输出水仙花数:

1. 本题PTA提交列表:

2. 设计思路:

3.本题调试过程碰到问题及PTA提交列表情况说明:

  • 1.这题刚开始提交时PTA提示运行超时,同学建议优化一下算法,去掉不必要的步骤,于是重新写了一遍,

  • 2.这张是第一次写的有些复杂的代码;

  • 3.这张是第二次优化后的代码,还是显示运行超时;
  • 4.于是重新动手写了一遍代码,这次思路比之前清晰许多,信心满满地提交后,PTA回答了我四个字“部分正确“,这个代码调了两天,有点崩溃,后来请教同学,同学提醒我次方数应等于输入数的位数,可能因为惯性思维,加上没注意审题,以为水仙花数都等于每位数取余后的三次方,后来又添加了一步计算整数位数的算法,答案还是错的,在同学提示下发现没给统计整数位数的count值赋初值,给count赋初值后答案才正确;

    6-7 使用函数输出指定范围内的完数:

    1.本题PTA提交列表:

    2. 设计思路:



3.本题调试过程碰到问题及PTA提交列表情况说明:

  • 1.一开始审题时有点懵,不知道因子是什么,以为只要不等于它本身的数都可以当加数,后来百度才知道因子相当于约数,然后才开始做题;
  • 2.调试时发现因为i要满足i<=number/2,所以number=1值始终进不了循环,于是另外给1值设置了执行步骤;
  • 3.调试时又发现sample2无法实现输出,即当一个区间内并无完数时的情况没有考虑,一开始找不到作为无完数的依凭条件,后来就新设置了变量count,用来统计完数个数,当count==0时输出No perfect number;

    二、同学代码结对互评:

    1.雅慧同学的代码;

2.我的代码;

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

  • 1.这题是判断完数的代码,我是将i循环,用number取余i,当等于0时,就将其加在sum值上;而雅慧是设置两个变量i和j,用枚举法将其列出,符合i*j==number的就加在sum上,这样做也是一种逆向思维,即用i和j去凑number,可是会比较麻烦,还要考虑i和j是否相同的情况,而用直接思维去做会更简单,所以我更喜欢我的。
  • 2.第一段代码后面逻辑有点乱,不太清楚c的作用是什么,其实可以直接判断是否a==number,然后返回0或1;

三、截图本周题目集的PTA最后排名:

四、本周学习总结:

1.你学会了什么?

1. C语言哪些数据类型?

  • 1.整型变量和常量,浮点型变量和常量,字符型变量和常量;

2. 字符型数据需要注意地方?

  • 1.'A'和‘a’是不同的字符型常量;
  • 2.‘A’+1对应字符‘B’;
  • 3.小写字母转为大写字母:ch=ch-'a'+'A'或者ch=ch-'b'+'B'等等;大写字母转化为小写字母:ch=ch+'a'-'A';
  • 4.小写字母比大写字母的ASCLL码多32;
  • 5.getchar()和putchar()只能处理单个字符的输入和输出;
  • 6.空格与回车符都会被%c吸收;
  • 7.‘1’的ASCLL码是49;‘A’的ASCLL码是65;

    3. 自增自减运算符?

  • 1.前缀++先+1再赋值,后缀++先赋值再+1;

    4. 运算符优先级?

  • 2.单目运算符,条件运算和赋值运算的结合放向从右到左,算数运算(双目运算符),移位运算,关系运算,位逻辑运算和逻辑运算结合方向从左到右;

    5. C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?

  • 1.当赋值符左边的变量和右边的变量类型不同时,先计算右边的值,再赋值给左边,且要转换成左边的变量类型;
  • 2.double 3得到3.0;int3.8得到3;
  • 3.前缀++(--)和后缀++(--)的区别不是很清楚,前缀++先+1再赋值,后缀++先赋值再+1;
  • 4.当a=3时,a+=a-=a*a的值算错,原因是没意识到a是一个变量,在从右往左算的过程中a为9时仍把a当3来计算;
  • 5.不明白8>6>3的值是多少,即对关系运算符的原理不清楚,后来明白单目运算符从左往右结合,先算8>6,得1(关系运算符的结果不是1就是0),很明显1>3不成立,所以得0;

    6.其他内容?

  • 1.异或:相同为0,不同为1;
  • 2.取反(位非运算):0变为1,1变为0;
  • 3.按位“与”和异或的规则相反,按位“与”是不同为0,相同为1;

2.本周的内容,你还不会什么?

  • 1.转义字符的用法不太清楚;

  • 2.ASCLL码对应的字符不太清楚;
  • 3.进制间的转换不是很清楚;

    3.循环结构考试总结:

  • 1.7-1 求交错序列前N项和这题卡在没有将sum和number定义成double;
  • 2.7-2 输出三角形字符阵列这题在字母的输出上卡住,没认真审题,字母的输出从A开始,而不是任意输入字母;
  • 3.7-4 小于m的最大的10个素数 这题卡在将i的初值设成1,难怪没有任何输出,因为任何数取余1都得0,毫无疑问,后来将i初值改成2才对了;
  • 4.因为在前三题磨蹭的时间太多,第4,5题都来不及完成,很遗憾,但也在意料之中,平时做题也是这样磨蹭,考试肯定快不了,所以一定要再加快速度,平时多挑战一点稍难的题目,总觉得自己的应变能力也不行,题目稍难便会卡住;

1.哪题做错了,怎么改?

1.后面两题错了,一个是进制的转换不熟悉,另一个是字符的输入不熟练,其实这两个问题在平时也有意识到,但总是想着以后总会解决,便耽搁了下来,在这里想送两句话给自己自勉一哈:明日复明日,明日何其多;我生待明日,万事成蹉跎;

2.考试结果满意么,怎么改进?

1.不满意,有问题要及时解决,平时多问几个为什么,虽然自己问的问题不一定都有意义或者有确切答案,但只要可以解决疑惑,一切都是值得的;

3.其他总结:

  • 1.预习环节还是要做好,课后复习也很重要,课堂效率一定要高,课后有问题一定要解决,敲代码的时间一定要够,反应力和速度一定要加快;
  • 2.随着对C语言的深入学习,慢慢理解了它与高数之间密不可分的联系;
  • 3.看了一些大神的博客后,发现自己还是老在一些地方犯同样的错误,也因此到不了更高的水平;

C语言函数2的更多相关文章

  1. 从linux0.11中起动部分代码看汇编调用c语言函数

    上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一 ...

  2. C语言(函数)学习之strstr strcasestr

    C语言(函数)学习之[strstr]&[strcasestr]一.strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needl ...

  3. C语言函数sscanf()的用法

    从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( st ...

  4. 不可或缺 Windows Native (6) - C 语言: 函数

    [源码下载] 不可或缺 Windows Native (6) - C 语言: 函数 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 函数 示例cFunction.h # ...

  5. C#委托与C语言函数指针及函数指针数组

    C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用 ...

  6. swift1.2语言函数和闭包函数介绍

    swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...

  7. Swift 1.1语言函数参数的特殊情况本地参数名外部参数名

    Swift 1.1语言函数参数的特殊情况本地参数名外部参数名 7.4  函数参数的特殊情况 声明定义有参函数时,为函数的每一个参数都定义了参数名称.根据参数名定义的形式不同,函数参数包括本地参数和外部 ...

  8. C语言函数指针基础

    本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...

  9. 动态修改 C 语言函数的实现

    Objective-C 作为基于 Runtime 的语言,它有非常强大的动态特性,可以在运行期间自省.进行方法调剂.为类增加属性.修改消息转发链路,在代码运行期间通过 Runtime 几乎可以修改 O ...

  10. keil or c51 汇编调用c语言函数 容易忽视的问题

    最近,在用keil 写一个小程序时,想实践一下从汇编调用 C语言函数,我们都知道C语言调用汇编函数讨论得较多,但反过来,从汇编中调用C语言的函数未见深入分析:在开始的时候,还是忽视了一个问题,就是对现 ...

随机推荐

  1. Codeforces Round #467 (Div. 1) B. Sleepy Game

    我一开始把题目看错了 我以为是博弈.. 这题就是一个简单的判环+dfs(不简单,挺烦的一题) #include <algorithm> #include <cstdio> #i ...

  2. Carries SCU - 4437

    Carries frog has nn integers a1,a2,-,ana1,a2,-,an, and she wants to add them pairwise. Unfortunately ...

  3. jQuery 中 jQuery(function(){})与(function(){})(jQuery) 的区别及用法

    query是优秀的Javascrīpt框架.我们现在来讨论下在 Jquery 中两个页面载入后执行的函数. $(document).ready(function(){ // 在这里写你的代码... } ...

  4. 对于Hibernate和MyBatis的区别与利弊,谈谈你的看法

    Hibernate与MyBatis的对比: 1.MyBatis非常简单易学,与Hibernate相对复杂,门槛较高: 2.两者都是比较优秀的开源产品: 3.当系统属于二次开发,无法对于数据库结构做到控 ...

  5. 【JLOI2015】城池攻占

    左偏树加lazy操作即可 # include <stdio.h> # include <stdlib.h> # include <string.h> # inclu ...

  6. opacity 与rgba区别

    rgba(r,g,b,a) rgba(r,g,b,a) r,g,b分别是颜色r g b的值(0-255),a表示透明度(0-1). opacity: value: opacity: value; va ...

  7. 关于android studio 的高德配置

    1.获得key 进入控制台,创建一个新应用.在创建的应用上点击"添加新Key"按钮,在弹出的对话框中,依次:输入应用名名称,选择绑定的服务为"Android平台SDK&q ...

  8. API网关系列之Kong的介绍以及安装

    一.API网关产生背景 在微服务的架构中,一个大的应用会被拆分成多个小的单一的服务提供出来,这些小的服务有自己的处理,有自己的数据库(也可以共用),也许语言也是不一样的,他们可以部署在一个或多个服务器 ...

  9. MyBatis延迟加载和缓存

    一.延迟加载 1.主对象的加载: 根本没有延迟的概念,都是直接加载. 2.关联对象的加载时机: 01.直接加载: 访问主对象,关联对象也要加载 02.侵入式延迟: 访问主对象,并不加载关联对象 访问主 ...

  10. 集群session管理问题

    转自:http://book.51cto.com/art/201405/439557.htm 先来看一下什么是Session. 用户使用网站的服务,基本上需要浏览器与Web 服务器的多次交互.HTTP ...