C语言第五次作业函数
一.PTA实验作业
题目1: 6-6 使用函数输出水仙花数
1.本题PTA提交列表
2.设计思路
1.narcissistic函数
- 1.由于number的值后面会变化,所以定义d,e用于储存number,以方便后来的计算和比较
定义count和f用于储存number的位数,c用于储存number的个位数,i为循环变量,b储存每个个位数
的count次方,sum储存b的和 - 2.用while循环语句,令number=number/10,每次少一位数,count+=1,直到number=0时得到它的位数count
- 3.由于题目没有调用函数,所以次方的运算通过循环进行
- 4.用for循环语句”for(i=1;i<=count;i++)“,即会做count次循环,即count次方
- 5.令f=count
- 6.c=e%10得到number的个位数
- 7.e=e/10使得number少了一位数,即少了6得到的个位数
- 8.如果f>0,则b=b*c,f-1
- 9.直到f=0,结束循环,得到此时个位数c的count次方
- 10.sum=sum+b,b=1,重复运算,直到e=0
- 11.如果sum=b,则返回1,否则返回0
2. PrintN函数
- 1.调用.narcissistic函数
- 2.令m=m+1 ,if ( narcissistic(m) ) ,输出m
- 3.m+1
- 4.重复想法2直到m=n
3.本题调试过程中碰到的问题以及解决方案
(1)
- 错误:没有循环得到count
- 解决:改为while语句
(2)
- 错误:dev调试2,b没有初始化赋值为1,导致后面的乘法结果都得到0
- 解决方案:b初始化赋值为1;
(3)
- 错误:发现b的值没有累加,于是多了个sum+=b,然而没有什么用
- 解决方案:新定义了sum,用于储存b
(4)
- 错误:发现把sum放在了循环内,但是还是没有输出
- 解决方案:把sum放在循环外
(5)
- 错误:b在进行新一轮乘积时还保留着上一轮的值
- 解决方案:在循环后将b赋值为1
(5)
- 终于对了,但这只是第一个函数
(6)
- 错误:果然,题目显示编译错误
- 解决方案:提交内容不包括题目所给代码
题目2:6-7 使用函数输出指定范围内的完数
1.本题PTA实验结果展示
2.设计思路
- 一,factorsum函数
- 第一步:定义变量c,sum=0
- 第二步:如果number=1,就返回1(特殊值特殊处理)
- 第三步:c=1
- 第四步:如果number%c=0(即c是number的因子)
- 第五步:sum+=c
- 第四步:return sum
- 二,PrintPN函数
- 第一步:定义g,i,j,a
- 第二步:g=m
- 第三步:调用factorsum函数,如果factorsum(g) == g进行步骤四五
- 第四步:a=1(判断是否有函数)
- 第五步:printf("%d = ",g);
- 第六步:i=1
- 第七步:if(i==1),进行步骤八九十
- 第八步:printf("1");
- 第九步:如果g%i==0&&i!=1&&i!=g
- 第十步: printf(" + %d",i);
- 第十一步:i++,重复步骤六,直到i大于g
- 第十二步:printf("\n");
- 第十三步:g++,直到g>n
- 第十四步:if(a==0) printf("No perfect number");
3.本题调试过程中碰到的问题以及解决方案
(1)
- 错误:只输出一次
(2)
错误:当g=6时根据题目,是会输出的,但是程序没有继续
解决方案:factorsum函数出了问题,先从它解决
一,dactorsum函数
错误:只输出一个,发现因子的和算了两遍
-解决方法:令只有当前一个因子小于或等于后一个因子时才求和
二,PrintPN函数
错误:没有按大小顺序输出
解决方案:一个因子一个因子输出
三,pta提交
错误:部分正确
解决:增加范围
错误:运行超时,判断完数一个循环就够,两个循环的话,10000数据就要执行10的8次方,在函数内就进行了判断函数
解决:令dactorsum函数只起到取其除自身以外因子的和的作用
7-1 求组合数
1.本题PTA实验结果展示
2.设计思路
- 第一步:定义m,n,end;
- 第二步:输入m,n
- 第三步:调用fact函数,令end=fact(n)/(fact(m)*fact(n-m));
- 第四步:输出
- 定义函数fact
- 第一步:定义pro=1;i
- 第二步:令i=a,等于自变量
- 第三步:pro*=i
- 第四步:i--,重复步骤三,直到i<1
- 第五步:返回pro
3.本题调试过程中碰到的问题以及解决方案
错误:部分正确
解决方案:全部变量都改为double型
二、同学代码结对互评(1分)
1.同学互评照片。
2.我的代码、互评同学代码截图
- 曾文惠
- 王宵莹
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
-(1)在计算次方的时候,王宵莹采用了for循环语句,而我使用if里面嵌套一个while语句,
我更喜欢我自己的代码风格,因为我觉得相对于王宵莹的代码进行了两次循环,我的代码更简洁,效率更高。
三.截图本周题目集的PTA提交列表及最后排名
四、本周学习总结(2分)
1.你学会了什么?
1.1 C语言哪些数据类型?
- 1.2 字符型数据需要注意地方?
- (1)每个字符在内存中占一个字节
- (2)getchar()和putcher()只能处理单个字符的输入和输出
- (3)%c
(4)输入多个字符时,字符间不能有空格
- 1.3 自增自减运算符?
- (1)++
- (2)--
1.4 运算符优先级?
- 1.5 C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?
- 算数表达式,条件表达式,逗号表达式,赋值表达式,逻辑表达式,关系表达式
原因:对于这些符号的运算先后顺序还不太熟练
- 1.6 其他内容?
无
2.本周的内容,你还不会什么?
- (1)对于一些符号的运算顺序还不太熟练
- (2)解决问题的能力还是不行,像遇到运算超时时完全不知道错在哪里
3.循环结构考试总结(全部同学都要写)
- 1.哪题做错了,怎么改?
- 最后两道题目做错了
要做函数的pta还有数据pta也开放了,所以目前还没有时间去思考怎么改,
- 2.考试结果满意么,怎么改进?
- 挺满意的,原本以为自己有挺多难题没解决的,在班级会排倒数,结果竟然及格了,所以还是挺满意的
但是还是不缺乏学霸在我做一半的时候就很潇洒的满分离开,所以同样的老师下,还是自己不够努力
- 3.其他总结。
及时做好笔记,及时做完作业,效率不高,没法像学霸一小时做几道pta,而是两三小时做一题,所以熬夜也要打代码,日积月累,问题只会越积越多。
C语言第五次作业函数的更多相关文章
- c语言第五次作业--函数
一.PTA实验作业 题目1.使用函数输出一个整数的逆序数 1.本题PTA提交列表 2.设计思路 1.int mod,rever:分别表示余数和返回的数 2.while(number%10 || num ...
- 网络1911、1912 C语言第4次作业--函数批改总结
目录 网络1911.1912 C语言第4次作业--函数批改总结 一.评分规则 二.本次作业亮点 三.本次作业存在的问题 四.助教有话说 五.得分详情 网络1911.1912 C语言第4次作业--函数批 ...
- C语言第五次作业——循环结构
C语言程序设计第五次作业--循环结构(1) (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增 ...
- C语言第十一次作业--函数嵌套调用
一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 设计思路 定义整型循环变量i,最小值下标min,中间变量t 若n==1,直接返回 否则 min=10-n 最小值下标赋初值 for ...
- C语言--第五次作业--指针
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 没想到都已经学习完C语言的灵魂-指针的内容了(当然也是C里面最难学习的内容了).虽然在之前就有听学习进度比较 ...
- C语言 第三次作业--函数
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 学习C语言也半个学期了,前天也才刚刚进行了半期考试,emmm,成绩很差,可以反应出来我这半学期学习的效果并不 ...
- c语言第五次作业-指针-总结博客
本次作业亮点 1.1整体情况 本次作业主要是对上次的大作业利用指针进行改进,但是大部分同学并没有很好按照老师的要求对大作业进行改进,函数的分装性也做得不够好,由于是初步学习指针,大家在本次的作业改造中 ...
- C语言第五节scanf函数
变量的内存分析 字节和地址 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的"字节"和"地址". 内存以"字节为单位" 0x表示的 ...
- C语言第五次作业--数据类型
7-2 区位码输入法: 1. 本题PTA提交列表: 2.设计思路: 1.simple定义输入数,character1和character2分别定义低字节和高字节区位码,digit存储取余后的数,sum ...
随机推荐
- angular路由操作
在单页面应用程序中比如angular应用,我们需要根据url的变化(即:不同的请求),来分配不同的资源.根据请求的URL来决定执行哪个模块,这个过程叫路由,同时,我们需要设计路由规则. 下面给出一个简 ...
- 权限的分类(shiro项目中来的五)
第一种权限:菜单栏展示还是不展示的权限(粗颗粒) 实现方法,在SYS_ROLE表中添加一个字段rights,通过 public static BigInteger sumRights(String[] ...
- 手机端仿ios的单级联动脚本三
脚本 <script>var weekdayArr=['非公司企业法人','个体工商户','私营独资企业','私营合伙企业','有限责任公司','股份有限责任公司'];var mobile ...
- 手机端仿ios的省市县3级联动脚本一
一,图片实例 二,代码 2.1,代码 $('#provinceCity_fu').click(function(){ var $this = $(this); new Picker({ "t ...
- [BZOJ2879] [Noi2012] 美食节 (费用流 & 动态加边)
Description CZ市为了欢迎全国各地的同学,特地举办了一场盛大的美食节.作为一个喜欢尝鲜的美食客,小M自然不愿意错过这场盛宴.他很快就尝遍了美食节所有的美食.然而,尝鲜的欲望是难以满足的.尽 ...
- 浅析C#之委托、Action、Func
一.委托 1.1 委托的定义 delegate(委托)是一种可用于封装命名方法或匿名方法的引用类型, 委托类似于 C++ 中的函数指针: .Net通过委托来提供回调函数机制. 声明一个委托类型 int ...
- 在 Scale Up 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(145)
对于多副本应用,当执行 Scale Up 操作时,新副本会作为 backend 被添加到 Service 的负责均衡中,与已有副本一起处理客户的请求.考虑到应用启动通常都需要一个准备阶段,比如加载缓存 ...
- Linux档案权限与目录配置
一.档案权限: Linux 最优秀的地方之一,就在于他的多人多任务环境.而为了让各个使用者具有较保密的档案数据,因此档案的权限管理就变的很重要了. Linux 一般将档案可存取的身份分为三个类别,分别 ...
- 简单的nodejs 文件系统(fs)读写例子。
在nodejs中,可以通过fs(file system)模块进行文件的I/O操作. API链接地址: http://nodeapi.ucdok.com/#/api/fs.html 下面进行fs文件系统 ...
- [Luogu 1122] 最大子树和
题目 Description 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题 ...