C语言I——作业06

这个作业属于哪个课程https://bbs.csdn.net/forums/csuft_swxy_C?joinKey=rjrg8lmq4wzq-p9oj9kxrkm-1-60300df3382549104a12bbe9f193eb77&typeId=17321
这个作业要求在哪里https://bbs.csdn.net/topics/603427602
这个作业的目标<学会使用循环>
学号<20218527>

一、本周作业(总分40分)

1.1 完成PTA作业,并给出编程题完成截图,截图上有自己的学号及姓名标识(不是截图形式的计0分)(每题5分)

7-1 求交错序列前N项和 (15 分)

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N项之和。

输入格式:

在一行中输出部分和的值,结果保留三位小数。

输入样例:

5

输出样例:

0.917

在这里插入图片描述

  • 数据表达:用int定义变量N,x并给x赋初始值0,用double定义变量ans和i,并都赋初始值0
  • 数据处理:先给N赋值,再使用for循环,初始化为i=1,测试条件为当i<=N时结束,更新条件为i++,先利用pow()函数表达各项的符号的变化,再用表达式ans = i / (2 * i - 1)来表示各项的数,最后加上之前的本身和乘以x得到最终结果,最后输出结果。

在这里插入图片描述

  • 编译错误:for循环不熟悉把条件之间的“ ; ”用成“ , ”。
  • 答案错误:符号判断错误,本来指数部分应该用“ i+1 ”的,用成了“ i ”。

7-2 求平方根序列前N项和 (15 分)

本题要求编写程序,计算平方根序列√1+√2+√3+⋯的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:

10

输出样例:

sum = 22.47
在这里插入图片描述

  • 数据表达:用int定义变量N和i,并给i赋初始值1, 用double定义变量sum,并赋初始值0。
  • 数据处理:先给变量N赋值,用for循环,初始化条件为i=1,当测试条件i<=N为假时循环结束,更新条件为i++,用sqrt()函数表示“ √ ”,使i不断叠加,并把值赋给sum,最终输出精确值为2的sum值得到答案。

在这里插入图片描述

  • 编译错误:math.h前不小心按了一个逗号。
  • 答案错误:输出答案sum那里没有加空格。

7-3 换硬币 (20 分)

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

输入格式:

输入在一行中给出待换的零钱数额x∈(8,100)。

输出格式:

要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。

输入样例:

13

输出样例:

fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
在这里插入图片描述

  • 数据表达:用int定义变量x,count,k,i,j,并给count赋初始值0。
  • 数据处理:先给变量x赋值,连三个用for循环嵌套,层层循环下来用if语句满足k5+i2+j=x的条件然后分别输出k,i,j的值,用count来表示循环的次数来表示“换法个数”。
    在这里插入图片描述

7-4 求幂之和 (15 分)

本题要求编写程序,计算sum=2+2²+2³+⋯+2^n。可以调用pow函数求幂。

输入格式:

输入在一行中给出正整数n(≤10)。

输出格式:

按照格式“result = 计算结果”输出。

输入样例:

5

输出样例:

result = 62
在这里插入图片描述

  • 数据表达:用int定义变量n,i,result,并给i赋初始值1,给result赋初始值0。
  • 数据处理:先给n赋值,用for循环,初始化条件为i=1,当测试条件i<=N为假时循环结束,更新条件为i++,用pow(2,i)来表示每一项的值,并把答案赋给变量result,累计叠加,最终输出答案。

在这里插入图片描述

7-5 打印九九口诀表 (15 分)

下面是一个完整的下三角九九口诀表:

11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
1
6=6 26=12 36=18 46=24 56=30 66=36
1
7=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 9*9=81

本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。

输入格式:

输入在一行中给出一个正整数N(1≤N≤9)。

输出格式:

输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

输入样例:

4

输出样例

11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16
在这里插入图片描述

  • 数据表达:用int定义变量i,j,N,并给变量i赋初始值1
  • 数据处理:先给N赋值,然后用for循环,由i=1开始,当i>N时结束循环,i在循环的过程中持续加一,在此循环中在嵌套一个类似的循环,以达到要求的效果,在里面这个循环每一次循环的过程中输出表达式ji=(ji),完成答案中的一列,然后换行,再之后里面这个循环满足后回到外面这个循环,然后继续之前的操作,最终得到答案。

在这里插入图片描述
答案错误,部分正确:每个答案之间的空格少了,然后i和j之前的顺序反了12=2变成了21=2

2. 学习总结

2.1 学习进度条(5分)

周/日期这周所花的时间代码行学到的知识点简介目前比较迷惑的问题
第12周7h160循环,for循环,递归没有什么疑惑

2.2 累积代码行和博客字数

在这里插入图片描述

2.3 学习感悟

1.这周在课上学了一个很重要的知识点:递归,我认为递归就是一种变相的循环,不断的调用自己,所以递归需要一个终止递归的条件,那不然就是一个无限递归,但是我认为在编程的时候用递归还不如用循环来得方便,然后再写pta作业的时候也了解了for循环,也可以更加熟练的使用了。
2.在学习递归的时候刚开始感觉不管怎么样就是理解不了,不知道为什么这样就可以形成像循环的效果,感觉就是脑子不够用,要看很久并结合循环一起看才能理解。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值