C语言I博客作业03
1.作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-3/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-3/homework/11423 |
这个作业的目标 | 使我们掌握for循环语句的用法,能够熟练地运用到实际问题中以及学会在写代码的时候实现代码的可读性和客观性. |
学号 | 20209179 |
一、本周教学内容&目标
第2章 用C语言编写程序-循环结构 2.4 输出华氏-摄氏温度转换表。要求学生掌握使用for循环语句实现指定次数的循环程序设计。
二、本周作业
PTA实验作业
阅读代码
学习总结格式
三、 作业格式
1.PTA实验作业(15分/题)
1.1 判断素数
题目内容描述:本题的目标很简单,就是判断一个给定的正整数是否素数。输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数。对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
1.1.1实验代码截图
贴图展示代码,
1.1.2数据处理
数据表达:本题用了N,panduanzhi,i,shu这些变量它们都是整型变量,N,shu是题目要求的输入变量,i是用在for语句里面的变量,panduanzhis是拿来判断真假的变量。
数据处理:数据用到的表达式和流程结构。本题用到的表达式有一个while和for循环,还有两个if语句。流程结构为首先输入数的个数,然后每输入一个数,N减少一,之后用for语句来确定范围,最后用if语句来判断满足素数的要求,如果满足则输出Yes,否则输出No。
1.1.3 PTA提交列表及说明
提交列表:
说明:
Q1:刚开始输出的时候不满足实际要求。
A1:复制代码去DVc++里面进行调试之后,慢慢的整理一下思路后就会发现问题所在。
Q2:不知道满足素数的条件。
A2:通过百度了解一番之后就搞定了这个问题。
Q3:测试的时候输出结果完全符合,但提交的时候确实答案错误。
A3:经尝试很久后终于了解到原来那个判断值不能在开始的时候就定义,而只能在while语句里面定义,并且for语句里面的条件只能用sqrt(shu)而不能用shu/2.
1.2 打印九九口诀表
题目内容描述:下面是一个完整的下三角九九口诀表:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
16=6 26=12 36=18 46=24 56=30 66=36
17=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位、左对齐。
1.2.1 实验代码截图
1.2.2 数据处理
数据表达:本题用到的变量有N,s,i,j并且它们都是整型,i用来确定行,j用来确定列,N表示11到NN,s是用来统计ij的值的。
数据处理:本题用了两个for语句和一个if语句,首先判断N是否在1-9之间,然后j先自加,然后再i自加,然后用ij来表示乘法口诀。
1.2.3 PTA提交列表及说明
提交列表:
说明:
Q1:输出的时候把第一个值*第二个值弄反了。
A1:把输出时候的变量调过来就行了。
Q2:刚开始的时候不知道怎么把它输出成像梯子那样。
A2:后来翻书看见了金字塔,然后就想这个跟金字塔的差不多,然后就运用了金字塔的思想。
Q3:提交时出现格式错误。
A3:每次输出后面都爱忘加换行符。
1.3 计算输入的三个整数中最小值
题目内容描述:编写一段程序,计算出输入的三个整数中的最小值并显示。
注意使用 if 语句。
请输入三个整数。
12 67 -56 (回车)
其中的最小值为-56。
输入样例:
在同一行中输入三个整数, 用空格隔开,最后敲回车。例如:12 67 -56 (回车)
输出样例:
请输入三个整数。
其中的最小值为-56。
1.3.1 实验代码截图
1.3.2 数据处理
数据表达:变量a,b,c是输入的三个数,变量t为转换的媒介,它们都是整型变量。
数据处理:用了if判断语句来实现最值的数值转换,如果a>b,则交换a和b的位置;如果a>c,则交换a和c的位置;如果b>c,则交换b和c。最后a就变成了最小值。
1.3.3 PTA提交列表及说明
提交列表:
说明:Q1:第一次运行测试的时候出现了格式错误。
A1:在输出末尾忘加了换行符。
2.阅读代码
优秀代码:
#include<stdio.h>
int main()
{
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)// 以下为三重循环,先是k自加,然后再j自加,最后再i自加
{
for(j=1;j<=n;j++)
{
for (k=1;k<=n;k++)
{
if (i!=k&&i!=j&&j!=k) // 确保i、j、k三位互不相同
{
printf("%d,%d,%d\n",i,j,k);
}
}
}
}
return 0;
}
这个解题思路值得我们去学习,多个for循环语句的嵌套也值得我们去学习,这个代码简便易懂。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
3/9-3/15 | 6h | 579 | for循环语句的使用,一些数学函数的使用 | 多个for循环的使用 |
3.2 累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第8周 | 437 | 249 |
第9周 | 648 | 428 |
第10周 | 1385 | 579 |
![]() |
3.3 学习感悟(5分)
1.一个题不一定只有一种解题方法,尽量找到简便的方法来做。
2.做时首先要理清好思路,然后确定好框架,最后再做题。
3.在PTA中提交时答案错误或编译错误时不要慌,要稳住心态,学会拿代码去调试,这样找出问题快一些。
4.多看书,一般书上有很多知识都用得上。