循环 函数 数组
循环
## 一
题目一:打印九九口诀表
1、本题PTA提交列表
2、 设计思路
设计一个嵌套循环,第一个循环使第二个循环从1变到i,依次输出i*j,同时第二个循环使第一个循环从1变到9
3、本题调试过程碰到问题及PTA提交列表情况说明
调试过程碰到问题:语句没能对齐和形成三角形
调试过程
把j*i改成i*j %d改成%-4d后正确
题目二:求交错序列前N项和
1、本题PTA提交列表
2、 设计思路
定义一个数学函数pow()来实现改变序列中元素的符号,定义sum来球和,调用while 语句来进行循环求和,当 i 不满足条件时,跳出循环。
3、本题调试过程碰到问题及PTA提交列表情况说明
调试过程碰到问题:总和sum 和d 的数据类型错误
调试过程
把d换为float型后正确
题目三:求平方根序列前N项和
1、本题PTA提交列表
2、 设计思路
定义一个数学函数sqrt()来求a的平方根,定义sum来求和,调用while 语句来进行循环求和,当 i 不满足条件时,跳出循环。
3、本题调试过程碰到问题及PTA提交列表情况说明
调试过程碰到问题:在dev上能运行但在pta上却不能运行。。
调试过程
严格按照pta上的格式输入后,如等号两边都需要大空格、b改为float型后答案正确
##二同学代码结对互评
我的代码
吴旷麟的代码
此题我们的代码不同之处在于我是用while循环,而旷麟是用for循环。
但他的代码比我的简洁明了,更少占储存空间
##三
【总结】
1 .你学会了什么?
(1)熟悉了简单循环以及嵌套循环的使用、、、
(2)学会了数学函数的使用:如1、平方根函数sqrt(x) 2、绝对值函数fabs(x) 3、冥函数pow(x,n) 4、指数函数exp(x) 5、以e为地的对数函数log(x)
(3) for语句和 while语句都是在循环前先判断条件,而 do-while语句是先执行循环体,后判断循环条件
(4)break语句是强制结束循环,而continue语句是跳过后面的语句接续循环
2 .还不会什么?
pta不会做的题:7-35 7-38 7-39 7-10 7-36 7-40 7-8 7-9 7-10 7-11 7-34 7-20
3 . 考试总结:
1.哪题做错了?怎么改?
(1)7-39 出生年;与室友讨论,一起思考,网上查阅;
(2)7-10 打印沙漏; 思考后多次不对,并与室友对比代码,然后发现了自己的错误
2 .考试结果满意吗?怎么改进?
考试结果不太好,不满意
改进:多敲代码,多思考,多看书,掌握基础知识
4 .其他总结:课本的基础知识掌握还不够
函数
## 一
题目一:7-3 求幂之和(15 分)本题要求编写程序,计算sum=21+22+23+⋯+2n。可以调用pow函数求幂。
1、本题PTA提交列表
2、 设计思路
调用pow函数求幂,定义sum依次求和、
流程图
3、本题调试过程碰到问题及PTA提交列表情况说明
调试过程碰到问题:无
调试过程
题目二:7-5 近似求PI(15 分)
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
2π=1+31!+3×52!+3×5×73!+⋯+3×5×⋯×(2×i+1)i!+⋯
1、本题PTA提交列表
2、 设计思路
自定义三个函数,运用函数嵌套实现求出π的近似值,应用循环结构求最后一项大小,
直到最后一项小于给定精度eps。同时求出各元素累加的值
流程图:
3、本题调试过程碰到问题及PTA提交列表情况说明
调试过程碰到问题:1、如何运用函数的嵌套使用? 2、开始循环逻辑不对,函数定义思路不清晰
3、第一次提交 输出格式错误,将"%lf"改为“%.5”则正确。
调试过程
题目三:7-1 求组合数(15 分)
本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数。
1、本题PTA提交列表
2、 设计思路
因为组合数由n!/m!*(n-m)!构成,,定义一个阶乘函数fact(),分别求出n! , m! , (n-m)! ,然后在用result统计结果
流程图:
3、本题调试过程碰到问题及PTA提交列表情况说明
调试过程碰到问题:一开始错把结果result定义为了int 型、自定义函数的声明后面必须要有分号
调试过程
###二 :同学代码结对互评
吴旷麟的代码:
我的代码
我的代码的思路和旷麟的代码的思路基本一样,但是旷麟的代码更加精短,更加有含金量,一目了然不会让人纠结,而我的代码步伐较多,容易让人混淆
###三 【总结】
1 .你学会了什么?
(1)学会了运用函数之间的嵌套使用。,如7-5 近似求PI
(2)局部变量和全局变量的使用,一般把全局变量定义在程序的最前面,局部变量一般定义在函数或复合语句的开始处
(3)void函数是不返回结果的函数
(4)学会了函数的定义和调用 自定义函数的声明,其后要加分号
2 .pta不会做的题:7-2 7-9 7-7
3 . 考试总结:
1.哪题做错了?怎么改?
(1)7-11;和同学一起讨论,互相检查代码,网上查阅;
2 .考试结果满意吗?怎么改进?
考试结果不太好,不满意
改进:多敲代码,多思考;勤于问,谦于闻
4 .其他总结:课本的基础知识掌握还不够,知识面宅
###四
本周题目集的PTA最后排名
数组
##一
题目一:7-4 查找整数(10 分)
本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。
1. 本题PTA提交列表
2. 设计思路
定义一个数组a[i]将输入的N个数有序的储存起来,将i<N作为循环条件,依次调用a[i]与X比较,若找到与X相等的a[i], 并输出i,若没找到并输出“Not Found"...
流程图:
3.本题调试过程碰到问题及PTA提交列表情况说明。
调试过程:
【错误】:在没输入N之前,a[N]语句在C语言为不合法语句,错把英文分号大写成中文分号。。
经认真检查、让室友寻找以后 修改 正确
题目二:选择法排序(20 分)
本题要求将给定的n个整数从大到小排序后输出。
1. 本题PTA提交列表:
2. 设计思路
在未排序的n个数中找到最大值,将它与a[0]交换;再在剩下的n-1个数中找到最大值,并与a[1]交换、、、依次类推
流程图
3.本题调试过程碰到问题及PTA提交列表情况说明。
调试过程:
【错误】:1、不细心 ,没有按pta的格式要求,pta要求在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
改正后提交 正确
题目三:方阵循环右移(20 分)
本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。
1. 本题PTA提交列表
2. 设计思路
定义一个二维数组A[n][n],运用三个嵌套循环,依次将给定n×n方阵中的每个元素循环向右移m个位置。。
流程图
3.本题调试过程碰到问题及PTA提交列表情况说明。
【错误】1、一开始没注意pta的要求为:每行n个整数,每个整数后输出一个空格,并且要换行
2‘、一开始思路不清晰 分析不透彻 导致循环嵌套部分错误
本题代码:
##二同学代码结对互评
陈健的代码
我的代码
我和陈健的代码不同之处在于陈建是用函数写的,而我只用了数组
我觉得这个题我自己的比较好,会更加清晰;
##三
1 .你学会了什么?
(1)利用数组来调用多个输入值,以及二维数组的使用
(2)更加熟悉了循环的使用
(3)数组名是一个地址常量,存放数组内存空间的首地址
(4)数组下标从0开始,下标不能越界
(5)字符串是由有效字符和字符串结束符‘\0'组成
2 .还不会什么?
pta不会做的题:7-5 7-7 7-8 7-9 7-15 7-16 7-13 7-23 7-24 7-25 7-29 30
3 . 考试总结:
1.哪题做错了?怎么改?
(1)正整数A+B;问同学,网上查阅;
(2)说反话-加强版 问同学,知道了大致方法
2 .考试结果满意吗?怎么改进?
考试结果不太好,不满意
改进:多敲代码,思考
4 .其他总结:课本的基础知识掌握还不够,写程序时自己会没思路
写程序时会思考很久但还是不知从何下手,
本周题目集的PTA最后排名