C语言博客作业02--循环结构
0.展示PTA总分(0----2)
1.本章学习总结(2分)
1.1 学习内容总结
-
循环语句
- while循环语句:
while(表达式)
循环体语句; - do-while循环语句:
do{
循环体语句
}while(表达式);
- while循环语句:
-
控制循环语句
- break
功能:结束循环。
适用范围:循环语句和switch语句。 - continue
功能:跳过后面语句继续循环。
适用范围:仅循环语句。
- break
-
特殊循环结构(嵌套循环)
-
循环语句的应用
- 用格雷戈里公式求π的近似值//while循环语句
- 统计一个整数的位数//do-while循环语句
- 判断素数//break语句
- 求1!+2!+...+100!//嵌套循环结构
1.2 本章学习体会
C语言的基本语法较容易掌握,但同时也容易忽视细节,造成细节上的错误。因此在学习C语言初期需要认真细致地去写好每一个代码,至每一条语句,才能为后期打好良好的语法基础。在不断的学习中发现C语言是一种很注重一个人的逻辑思维能力的语言学科,随着代码量的不断增加,自己的逻辑思维能力也在不断得到增强。其关键就是,要学会C语言,就必须要投入足够的精力和时间。
PTA题集 | c03-单循环结构 | c04-嵌套结构 | 总计 |
---|---|---|---|
代码量 | 493 | 562 | 1055 |
2.PTA实验作业(6分)
2.1 7-11 简单计算器 (20 分)
2.1.1 数据处理
定义整型变量a放第一个数字,b放后面的数字,c放计算结果。定义字符变量n放运算符。
while((n=getchar())!='=')
输入下一个数字
if 在除法的情况下除数为0或符号不为加减乘除 then
printf("ERROR\n")
返回0
end if
end while
switch(n){
选择对应运算符进行运算
运算符不为加减乘除 thenf
printf("ERROR\n")
返回0
将c的值赋给a
输出a
2.1.2 代码截图
2.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1+2*10-10/2= | 10 | 正常数据 |
8/0= | ERROR | 除数为0 |
5%7-2= | ERROR | 符号错误 |
2.1.4 PTA提交列表及说明
提交列表说明:
1.部分正确:没有考虑除法情况下除数为0的请客。
2.部分正确:在除数为0或运算符不正确 的情况没有使用break语句来结束程序。
3.全部正确:。。。
2.2 7-2 梅森数 (20 分)
2.2.1 数据处理
定义整型变量num放需要判断的数字,i放赋值给num的表达式中的指数,j放判断num是否为素数的除数,f放范围内素数的个数。
for(i=2;i<=n;i++)
将表达式pow(2,i)-1的值赋给num
判断num是否为素数
若不是,则退出循环
当循环判断结束时,即num为梅森数时
输出num的值
f++
end if
end for
end for
如果该范围内没有梅森数
输出None
2.2.2 代码截图
2.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
6 | 3 7 31 | 正常数据 |
1 | None | 范围内无梅森数 |
2.2.4 PTA提交列表及说明
提交列表说明:
1.部分正确:在判断出num不为素数的情况下没有使用break语句跳出循环。
2.部分正确:没有考虑到当(j>sqrt(num))的情况下输出num。
3.全部正确:。。。
7-6 水仙花数 (20 分)
2.3.1 数据处理
定义整型变量i放判断的数,x放n位数的最小值,y放n位数的最大值,t放i的值并加入下面的计算,tt放每位数的n次方的值,sum放每位数的n次方的值的和。
for(i=0;i<n-1;i++)
算出范围内的最小值并赋给x
for(i=0;i<n;i++)
算出范围内的最大值并赋给y
for(i=x;i<y;i++)
结合while循环计算出每位数的n次方的值的和
end for
if(和的值与判断的数值相等)
输出该数的值
进入下一轮循环
直到判断完范围内最后一位数为止
返回0
2.3.2 代码截图
2.3.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
3 | 153 370 371 407 | 正常数据 |
1 | 无输出 |
2.3.4 PTA提交列表及说明
提交列表说明
1.运行超时:计算每位数的n次方的值的和时,其中的while语句括号内条件m没有进行每一轮的减一运算,应该为m--。
2.运行超时:进入下一轮while循环前没有将t的值减少一位,应添加语句t=t/10.
3.答案正确;。。。
3.代码互评(2分)
7-2 梅森数 (20 分)
(上面为朱同学的代码,下面为我的代码。)
对比报告:朱同学善于应用新知识,思路清晰,且新知识应用得当,我则偏向于使用近期所学的知识进行解题;朱同学的代码量较大,我的代码量则较为简短。
7-7 换硬币 (20 分)
对比报告:朱同学习惯把变量定义放置到不同的行位,我则习惯把变量定义在同一行;朱同学善于应用嵌套循环判断语句,而我在循环内部很少再加入过多的语句。