C语言博客作业--函数
一、PTA实验作业
题目一:6-3 使用函数判断完全平方数
1. 本题PTA提交列表
2. 设计思路
- 1.定义整型变量i为循环变量,x是返回值
- 2.若n==0,则x=1
- 3.若n小于0,x=0
- 4.若x大于0,赋初值等于1,当i小于等于n进入循环,每循环一次i值加一
- 5.若i乘i等于n,则x=1,跳出循环
- 6.否则x=0
- 7.返回x的值
3.本题调试过程碰到问题及PTA提交列表情况说明
- 1.分层不够明确,最开始忘记把负数整数和0分开,后经过思考明白
- 2.0也是完全平方数,之前确把0当做非完全平方数处理,pta提交列表显示监测点0错误,后改正
- 3.使用了多种语句,大括号的添加不适当,造成了编译错误,经devc调试改正
题目2:6-5 使用函数输出一个整数的逆序数
1. 本题PTA提交列表
2. 设计思路
- 1.定义整型变量y为x的逆序数,a是x每次除十取余后的结果,b用来统计整数位数
- 2.令b=0,y=0,c=x
- 3.当c不等于0进入while循环
- 4.对c除十取整
- 5.x每除一位,b值自增1
- 6.当x小于0时d=-x,大于零d=x
- 7.令i==b,当i大于零进行循环,每循环一次i值减1
- 8.a=d每次除十后的余数
- 9.d大于10时,d=其除十取整
- 10.x不大于十,x的值不变
- 11.y=y+a*pow(10,(i-1)
- 12.x小于0,y=-y,x大于0,y=y,返回y值
3.本题调试过程碰到问题及PTA提交列表情况说明
没有考虑到负数和正数在取整和取余上是有区别的,对负数得将其变为正数之后才能进行取整取余操作
题目三:6-7 使用函数输出指定范围内的完数
1. 本题PTA提交列表
2. 设计思路
-
1.定义循环变量i,sum用于存放因子和
-
2.当输入的number为1时,直接返回1
-
3.for(i=1;i<=number-1;i++), sum=sum+i;利用循环计算因子和
-
4.返回sum
-
1.定义循环变量i,j,flag在数是完数时值改变
-
2.for(i=m;i<=n;i++)判断m和n之间的数是否为完数 if(factorsum(i)==i)
-
3.printf("%d = 1",i);若是,输出所有完数共有的因子1;
-
4.flag=1;
-
- for(j=2;j<=i-1;j++){利用循环输出因子输出因子 if(i%j==0) printf(" + %d",j);
-
- 换行
-
7.若flag值没有改变,输出No perfect number
3.本题调试过程碰到问题及PTA提交列表情况说明
二、同学代码结对互评
1.同学互评照片。
2.我的代码、互评同学代码截图
我的代码:
同学代码:
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?
- 1.设计思路完全不同,我用了嵌套循环,同学是先直接将这个三位数的每一位都表示出来再和4进行比较
- 2.我的代码较简洁,同学的代码较长,但是思路很明确,将三位数每一位都抽离,看共有几位四,而我是在循环中将每一位数与四比较
- 3.同学的思路给了我新的启发,这道题也可以不用循环来解,循环的设计总会有点麻烦,代码太长也会显得太过复杂,两种代码都各有所长,难分伯仲
三、截图本周题目集的PTA最后排名
四、本周学习总结
1.你学会了什么?
1.1 C语言哪些数据类型?
- 1.有符号整型int,数据长度32位,有符号短整型short[int],长度16位,有符号长整型long[int]长度32位
- 2.无符号类:整型unsigned[int]长度32位长整型unsignedlong[int]32位短整型unsignedshort[int]16位
- 3.字符型类型名char,数据长度8位
- 4.实型(浮点型),单精度:float数据长度32位;双精度:double数据长度64位
1.2 字符型数据需要注意地方?
- 1.字符型变量的值可以是字符也可以是整数,整型变量和字符型变量的值都可以相互交换
- 2.一个字母的大小写是不同的字符型常量
- 3.0和‘0’,前者是整型常量,后者才是字符型常量
- 4.转义字符:由反斜杠加上一个字符或数字组成
1.3 自增自减运算符?
- 1.++n的运算顺序是:先执行n=n+1,再将n的值作为表达时n++的值
- 2.n++的运算顺序:先将n作为表达时n++的值。再执行n=n加一
- 3.注意:上述执行完最终n值都会改变
1.4 运算符优先级?
- 1.逗号运算优先级最低,它是从左到右运算;其次是赋值运算,它是从右到左进行运算
- 2.按从高到底顺序:逻辑运算符非-关系运算符(单目-双目)-关系运算符-逻辑运算符与或-条件表达式
1.5 C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?
- 1.第二小题做错x++是将x的值作为x++的值再乘以y,最后结果应为10。错因:x++的值算错,将其误以为x++=x+1
- 2.3:表达式a+=a-+a*a,没有搞清楚运算顺序,运算后也没有及时改变a的值
- 3.第四题:8>6的判别式只有两个结果,一个是1一个是0
- 4.题目是想转换成数值,而不是字母
.###6 其他内容? - 1.浮点数:小数点钱如果是0可以省略,e之前必有数字,e之后必为整数
- 2.=是赋值府 ,经过=号的变量值会改变
- 3.运算符的优先级可以通过加大括号来改变
2.本周的内容,你还不会什么?
- 1.字符型和数据型变量之间的转换
- 2.八进制和十六进制用反义字符的表示
3.循环结构考试总结
1.哪题做错了,怎么改?
- 1.第一题最后终于做出来了,但是过程浪费了很多时间,因为变量数据类型的定义错误
-
2.考试结果满意么,怎么改进?
- 1.不满意,平时应该好好写作业,不能抱着应付的心态,能少写就不多写
- 2.还是依赖别人,要独立解决自己完成
3.其他总结
- 1.平时做题习惯很重要
- 2,及时总结错误