循环结构

0.展示PTA总分


1.本章学习总结

1.本章学习总结

这两周主要学习了循环和循环的嵌套,通过这些学习,我们又可以做很多题目

1.2 本章学习体会

学习感受:c语言的学习需要持之以恒的精神和兴趣 缺一不可。
代码量 500行。

2.PTA实验作业

2.1 7-1 求n以内最大的k个素数以及它们的和 (20 分)

2.1.1 伪代码

for(i=1;i<=a;i++) 通过第一层循环使各个素数依次判断;
for(j=2;j<n;j++)
// 判断素数
{
flag=1;

   if(n%j==0)
   {
       flag=0;
       break;
   }

}
if(flag1)
{
sum+=n;
num++;
if(k
1)
{
printf("%d=%d",n,n);
goto zero;
}
if(num<k)
{
if(num1)
printf("%d",n);
else if(num>1&&num<k)
printf("+%d",n);
}
if(num
k)
goto out;

   通过第二个循环嵌套来判断是否是素数

若是素数,则进入后面的语句。

2.1.2 代码截图


2.1.4 PTA提交列表及说明


部分正确:没有考虑到只有一个数和只有一个句号的情况。补充考虑后则正确。
答案错误:后面等号的情况没有考虑 忘记打等号 后面用跳出循环后则输出等号的形式解决。

2.2 7-6 水仙花数

2.2.1 数据处理

for(i=pow(10,N-1);i<pow(10,N);i++)
通过对题目的观察确定了i的取值范围
int mask=pow(10,N-1);
{
for(j=1;j<=N;j++)
{
do d=a/mask;
c=c*d;
}
a%=mask;
mask/=10;
sum=sum+c;
c=1;
引入mask 来使这个数的各个位置的数分离开来 然后用一个小的for循环来替代pow函数 加快编译速度。

2.2.4 PTA提交列表及说明

部分正确:刚开始用pow函数 导致数据过大时运行超时 后改用for循环解决。

2.3 7-7 换硬币

2.3.1 数据处理

使用三个循环嵌套 分别对应一分 两分 五分
for(a=19;5a>0;a--)
{
for(b=50;2
b>0;b--)
{
for(c=99;c>0;c--)
而后使用if判断是否能整合为1
if(5a+2b+1*c==x)
{count++;
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",a,b,c,a+b+c);

2.3.2 代码截图

2.3.4 PTA提交列表及说明


第一次是把一分和五分位置选反了 第二次是把每一种情况从最小的开始加 改正后正确。

3.代码互评

同学代码截图


自己代码截图

都一样 没得变化

posted @ 2019-10-20 17:45  啊是大家肯定会  阅读(251)  评论(0编辑  收藏  举报