c语言博客作业03--循环结构
0.展示PTA总分


1.本章学习总结
1.1学习内容总结
循环语句
for语句:
for( 表达式1; 表达式2; 表达式3 )
{
// 需要执行的语句;
}
其执行过程是:表达式 1 首先执行且只执行一次;然后执行表达式 2,通常都是一个用于判定条件的表达式,如果表达式 2 条件成立,就执行(需要执行的语句);然后再执行表达式 3;再判断表达式 2,执行(需要执行的语句);再执行表达式 3.....一直到表达式 2 不成立时,跳出循环继续执行循环后面的语句。
while语句:
while (表达式)
{
语句;
}
当表达式为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。这个就是 while 的执行顺序。
do while语句:
do
{
语句;
}
while (表达式);
注意,while 后面的分号千万不能省略。
do…while 和 while 的执行过程非常相似,唯一的区别是:“do…while 是先执行一次循环体,然后再判别表达式”。当表达式为“真”时,返回重新执行循环体,如此反复,直到表达式为“假”为止,此时循环结束。
break:用于循环语句和switch语句。其作用是跳出整个循环,提前结束。
continue:用于循环语句。作用是跳出本次循环,执行下一次循环。
判断素数的方法
include<stdio.h>
include<math.h>
void main()
{
int m,i,k;
printf("请输入一个整数:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>k)
printf("%d 是素数。\n",m);
else
printf("%d 不是素数。\n",m);
}
其他
-找错时合理运用printf()
-嵌套循环:多个for或while语句的配合使用,要注意控制循环的次数,防止死循环。
-写伪代码
1.2学习体会
1.内容难度逐渐提高,并且作业量越来越大了
2.做pta是有的代码需要借鉴才可以写出来
3.代码量大概800多行
2.PTA实验作业
2.1求幂级数展开部分的和
2.1.1伪代码
定义分母为amass,定义总和为sum,定义每一项为single
while(最后一项的绝对值大于等于0.00001)
{
amass=1;每次循环将amass重新还原为1
for (i = 1; i <= k; i++)
{
amass = amass * i;
}
single = pow(x, k) / amass;
sum = sum + single;
k++;
}
输出sum的值
2.1.2代码截图

2.1.3造测试数据
| 输入 | 输出 | 说明 |
|---|---|---|
| 1.2 | 3.3201 | 普通数据 |
| 2.1 | 8.1662 | 普通数据 |
| 0 | 1.0000 | 输入为0 |
| 5 | 148.4132 | 输入为5 |
| 3.8 | 44.7012 | 普通数据 |
2.1.4pta提交列表及说明

1.编译错误:每次循环之前没有将amass(分母)初始化为1
2.部分正确:将sum = sum + single放在了for之前,导致结果少加了最后一项
3.全部正确
2.2梅森数
2.2.1伪代码
定义整数n,定义结果数result
if(n==1)如果n=1,则没有满足条件的梅森数
printf("None");输出None
for (j = 1;j <= n;j++)
{
result = pow(2, j) - 1;将2的j次方减一的值赋给result
for (i = 2;i <= result/2+1;i++)
{
if (result%i == 0)判断result是否能被1~result/2+1的数整除,如果可以就不是梅森数
break;
if (i > result / 2)
{
printf("%d\n", result);输出满足条件的梅森数,并换行
}
}
2.2.2代码截图

2.2.3造测试数据
| 输入 | 输出 | 说明 |
|---|---|---|
| 1 | None | 输入最小值1 |
| 2 | 3 | 普通数据 |
| 4 | 3 7 | 普通数据 |
| 3 | 3 7 | 普通数据 |
2.2.4pta提交列表及说明

1.部分正确:本次语句为i<=result,结果重复输出了多余的数
2.部分正确:本次将语句改为i<result/2,结果发现n=2时,程序无法正常运行,于是改为了i<=result/2+1
3.全部正确
2.3换硬币
2.3.1伪代码
定义各个硬币的最大数量分别为max5,max2,定义各个硬币的数量count5,count2,count1,定义换法数量为count
max5 = x / 5;得出所能换的5分硬币的最大数量
for (count5 = max5;count5 > 0;count5--)将5分最大数量赋给count5,在大于0的前提下递减
{
max2 = (x - 5 * count5) / 2;算出在扣除了5分硬币的金额后,2分硬币所能换的最大数量
for (count2 = max2;count2 > 0;count2--)将2分最大数量赋给count2,在大于0的基础上递减
{
count1 = x - 5 * count5 - 2 * count2;算出相应的1分硬币的数量
if (count1 > 0)满足1分硬币数量大于0
{
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", count5, count2, count1, count1 + count2 + count5);输出各值
count++;计算换发个数
}
}
}
输出换发个数
2.3.2代码截图

2.3.3造测试数据
| 输入 | 输出 | 说明 |
|---|---|---|
| 5 | count=0 | 当输入小于8的数 |
| 13 | (太长以至于无法展示) | 普通数据 |
| 8 | fen5:1, fen2:1, fen1:1, total:3 count=1 | 普通数据 |
2.3.4pta提交列表及说明

1.编译错误:从vs复制过来时漏掉了大括号
2.答案错误:count5与count1输出时写反了
3.全部正确
3.代码互评
同学代码

我的代码

1.同学的代码是先将n以内的素数个数求出来,然后以这个个数减去k的值,得出的值可能为负,以应对素数个数不足k个的情况,后面再从大到小输出素数。而我是直接判断,进而输出。
2.我们的输出方式不同,但本质上并无差别。
3.看上去我的代码量比较短,但没有高下之分,该同学的想法也比较独特,拓宽了我的思维。
c语言博客作业03--循环结构的更多相关文章
- C语言博客作业02——循环结构
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周学习了循环结构,在之前学习分支结构的时候就涉及到了循环结构中的for循环,这周的又新学了while和do- ...
- C语言第三次博客作业---单层循环结构
一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数,i记录循环变量 double height; //height放身高 char sex; //sex放性别F为女,M为男 s ...
- C语言博客作业02--循环结构
1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 经过本周学习,对c循环结构有了深入,无论是单层循环结构还是嵌套循环结构的问题,我都学会有一定的解决能力, ...
- C语言|博客作业03
这个作业属于哪个课程 C程序语言设计 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/8654 我在这个课程的目标是 ...
- C语言Ⅰ博客作业03
一. 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/8718 我在这个课 ...
- C语言博客作业2--循环结构
1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 对本章学习感觉相对前面的难度有较大提升,而且刚开始对嵌套循环比较陌生,像龟兔赛跑和输出菱形都是用了较长时间才完成,所以我认 ...
- C博客作业02——循环结构
0.展示PTA总分 单循环题目集 嵌套循环题目集 1.本章学习总结 1.1学习内容总结 (a)while语句 while(表达式) { 循环体语句: } 执行流程:当表达式的值为"真&quo ...
- C博客作业02—循环结构
0.展示PTA总分(0----2) 截图展示2次题目集:单循环和嵌套循环题目集,排名分数截图. 1.本章学习总结(2分) 1.1 学习内容总结 整理这两周学习主要知识点,并能对每个知识点介绍简单案例或 ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
随机推荐
- KindEditor 简单使用笔记
1.在官网下载最新版本 http://kindeditor.net/demo.php 2.在页面中加上如下代码 <textarea id="editor_id" name= ...
- JS前端加密JAVA后端解密详解
最近有一个加解密的需求,其实没有什么难度,但是实践过程中踩了很多坑,把踩坑过程分享出来. 1.前端JS加密 /** * 加密(需要先加载aes.min.js文件) * @param word * @r ...
- Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块
Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...
- aria2 ssl
https://github.com/q3aql/aria2-static-builds https://github.com/aria2/aria2/issues/781
- leetcode 学习心得 (3)
源代码地址:https://github.com/hopebo/hopelee 语言:C++ 517. Super Washing Machines You have n super washing ...
- java-ExceptionHandler全局异常处理
springmvc配置文件: <!-- 定义全局异常处理,只有一个全局异常处理器起作用 --> <bean id="exceptionResolver" clas ...
- day 19 作业
今日作业 1.什么是对象?什么是类? 对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体 2.绑定方法的有什么特点 由对象来调用称之为对象的绑定方法,不同的对象调用该绑定方法,则会将不同 ...
- Android笔记(七十五) Android中的图片压缩
这几天在做图记的时候遇第一次遇到了OOM,好激动~~ 追究原因,是因为在ListView中加载的图片太大造成的,因为我使用的都是手机相机直接拍摄的照片,图片都比较大,所以在加载的时候会出现内存溢出,那 ...
- Strength(HDU6563+2018年吉林站+双指针瞎搞)
题目链接 传送门 题意 你有\(n\)只怪,每只怪的伤害为\(a_i\),对手有\(m\)只怪,每只怪的伤害为\(b_i\),对手的怪有普通状态和防守状态(普通状态:如果你用攻击力为\(a_i(a_i ...
- 微信小程序~Flex布局
有一点需要注意的是,你的小程序要求兼容到iOS8以下版本,需要开启样式自动补全.开启样式自动补全,在“设置”—“项目设置”—勾选“上传代码时样式自动补全”.