C语言I博客作业08
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11611 |
这个作业的目标 | 学习及掌握循环及嵌套,了解break和continue用法,怎么跳出循环 |
学号 | 20208966 |
1.PTA实验作业(20分/题)
1.1 题目1
输入整数m,将所有大于1小于整数m的素数存入所指定的数组中(数组最多只存放100个素数,超过则提示“OVERFLOW”),输出各素数——若输入的m≤2,则提示“NO”,程序终止。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
1.1.1 数据处理
数据表达:定义数组a[100]和整数m,count,t表示每行个数
数据处理:输入m,用循环将1到m的所有整数放入a[100],自定义一个Prime函数判断素数,在main函数里调用Prime函数
for (int i = 1; i <= m; i++) {
if (Prime(i) == 1) {
a[count] = i;
count++;
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 | No | m<=2 |
1000 | OVERFLOW | 数组最多只存放100个素数 |
1.1.4 PTA提交列表及说明
说明:
格式错误:最后换行错误,每十五个换行,用t%15==0来判断是否换行
部分正确:最后每行不足十五时结束,要在最后一个循环外面用换行符结束
1.2 题目2
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
1.2.1 数据处理
数据表达:定义整数x,y,n,s分别表示行数,列数,输入的整数,每次的运算结果
数据处理:用for循环嵌套,外层表示行,内层表示列
for(x=1;x<=n;x++)
{
for(y=1;y<=x;y++)
{
s=x*y;
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1 | 1*1=1 | 一行一列 |
9 | 11=1 ····· 99=81 | 九行且每行递增一列到九列 |
1.2.4 PTA提交列表及说明
说明:
格式错误:最后输出应该为"%-4d",否则输出结果与预期不符
2.代码互评(5分)
同学代码:
我的代码:
对比:
同学的代码很特别的一步是num = (n * (n + 1)) / 2,再用一个if的判断再采用两个for循环的嵌套,是将答案存储在数组中;而我用了一个循环嵌套直接行与列计算输出结果
3.学习总结(15分)
3.1 学习进度条(5分)
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.最近一直是在复习,没有太多的去接触新的知识,对我而言,任何东西,基础最重要,现在回过头来看看之前的知识,比第一次接触时要清晰很多,也尝试用后面所学的去解决,对于c语言,当然也还没有接触到最深的那块地方,自知还有很多不足的地方,接下来的时间里我会去一一弥补改正。
2.对于如何跳出多重循环:第一可以在循环内部设定一个停止条件;第二增加break;第三使用goto语句(无条件转移语句)goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。但是,在结构化程序设计中一般不推荐使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。