一、PTA实验作业(循环)
题目一:
1.本题PTA提交列表
2.设计思路(包括流程图),主要描述题目算法
//设计思路,由题目可知
1.先定义出控制循环次数的变量与所需参数;
2.先从第一个数找起,由中间变量来寻找最小值;
3.寻找到最后一个时,中间变量就是最小值;
流程图如下:
.
最终的代码如下;
3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中的每一个错误详细说明为什么及如何解决)
发现的问题:刚开始的时候提交的时候提示格式错误,再后来多次检查后发现是输出的格式与题目要求的输出格式不符。
解决方法:在输出的等于号两边都加上一个空格就可以解决
题目二:
1.本题PTA提交列表
2.设计思路(包括流程图),主要描述题目算法
//由题目可知,设计思路如下:
1.定义整型变量M,N,i,j,和count,sum并且令其等于0;
2.输入变量M,N的值
3.利用for循环依次判断M到N之间的数是否为素数
4.最后输出最终的结果值
5.流程图如下:
6.最终的代码如下:
3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中的每一个错误详细说明为什么及如何解决)
1.在判断语句中的是否等于为==而不是数学中的=,在编译是发现错误并修改
题目三:
1.本题PTA提交列表
2.设计思路(包括流程图),主要描述题目算法
//由题目可知,设计思路如下:
1.先定义5个整型变量X,Y,S=1,N,l=0
2.输入N;
3.由第一重循环控制数字的递增,由第二重循环计算每个数字对应大的阶乘结果
4.每次相加,最后输出结果
5.流程图如下:
6.最终的代码如下:
3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中的每一个错误详细说明为什么及如何解决)
一开始的时候没有每次把S变量的数值复位于1,出现结果错误;
经过多次调试之后发现问题所在,并修改语句。
二、同学代码互评
1.我的代码:
#include<stdio.h> main() { int M,N,i,j,sum=0,count=0; scanf("%d %d",&M,&N); for(i=M;i<=N;i++){ for(j=2;j<i;j++){ if(i%j==0) break; } if(i==j){ sum+=i; count++;} } printf("%d %d",count,sum); }
2.同学:李嘉林
同学的代码:
#include<stdio.h> #include<math.h> int main() { int M,N,n,i,k,a=0,b=0; 1<=M<=N<=500; scanf("%d %d",&M,&N); for(n=M;n<=N;n++) { k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0)break; if(i>=k+1&&n!=1&&n!=0) { a++; b+=n; } } printf("%d %d",a,b); }
3.我和同学的代码有哪些不同?各自有哪些优势?你更喜欢那种代码的风格?
李同学的代码循环次数较少,时间复杂度比较低,我的代码思路更清晰,我更喜欢自己的风格
三、截图本周题目集的PTA最后排名
四、本周学习总结
1.本周你学会了什么?
1.本周学会了for循环和while以及do....while 循环的基本运用
2.以及深入了解了for和while循环嵌套
3.for和while循环的判断条件等
2.本周的内容,还有那些内容不会?
.对于一些较复杂的循环嵌套题,还不能准确的写出来,总是出现一些错误
.对于循环题做得速度总是很慢,而且程序总是过于复杂