C博客作业02--循环结构

0.展示PTA总分


1.本章学习总结

1.1 学习内容总结

  • for循环结构:第一个是初始化,第二个是条件语句,第三个是自处理语句。 循环时第一个语句只使用一次,然后判断是否满足第二个语句,满足则进入循环体。直到不满足循环体再跳出。
  • while循环结构:先对while()括号内的条件进行判断,若为真则进入循环,否则跳出循环。
  • do-while循环结构:先执行循环体中的表达式的内容,之后再进行循环条件的判断,决定是否进行下一次的循环。
  • while循环结构与do-while循环结构的区别:while和do-while的区别在于判断条件的先后,while先判断,程序有可能不进入循环;do-while是后判断,无论是否满足条件都只是会进行一次循环。因此,同样的条件,两种循环的输出结过可能不同。
  • break:在执行循环语句时,break也起到控制循环的作用。当满足执行break的条件时,break强制循环结束,不再执行循环体中break之后的内容,并直接跳出循环。一般来说,在循环语句中,我们会用if与break搭配,当条件满足时,起到跳出循环的作用。break只跳出一层循环
  • comtinue:当执行到comtinue语句时,continue会跳过循环体中continue下面的语句,并结束本次循环,并进入下一次循环。
  • break只能用于switch和循环语句,而continue只能用于循环语句。

1.2 本章学习体会

  • 循环嵌套难度大于选择和分支结构,需要耐心地读题,并合理使用循环语句。
  • 题量太多,不会做就很烦躁,但是在和同学讨论过后完成还是很开心。
  • 这两周代码量在900行左右。

2.PTA实验作业

2.1简单计算器

2.1.1 伪代码

int digit, sum, num = 0;
   /定义sum来累加计算产生的值/
char op = '0';
scanf("%d", &sum);
while (op != '=')
{
	scanf("%c", &op);
	/先将op定义为0,让它进入for循环,然后通过if语句来决定进行的运算法则和进行运算的数字/
if (num == 1)/如果num没有被赋值为1,则输入了错误的字符/
	printf("ERROR");
else
	printf("%d\n", sum);

2.1.2 代码截图

2.1.3 造测试数据

输入数据 输出数据 说明
1+2*10-10/2= 10 数据正常
1+2*10-10/2= ERROR 数据异常

2.1.4 PTA提交列表及说明

1.编译错误:打了中文的分号
2.答案错误:刚开始没有理解数字和字符是一个个进去的,在询问同学之后,理解了输入时,sum第一次被赋值为1

2.2梅森数

2.2.1 伪代码

{

if /若输入n=1,即可判定没有梅森数/
else
	for/通过for循环输出一个个2的n次方减一的数字/
	{
	
		for/通过for循环来判断是否为素数/
		}

	}

2.2.2 代码截图

2.2.3 造测试数据

输入数据 输出数据 说明
6 3 7 31 数据正常
1 none 数据正常

2.2.4 PTA提交列表及说明


1部分正确:刚开始只写了j<=shu1.0/2,反复调试多次才发现,当输入n=2的时候,就无法输出任何值,应改为for (j = 2; j <= shu1.0 / 2+1; j++)
2.部分正确:由于n=1放在循环中不好讨论,直接放在开头,即if (n == 1){printf("None");}

2.3二进制转10进制

2.3.1 伪代码

char ch;
int sum = 0;
int flag = 0;/定义ch为字符,sum用来存储二进制转十进制的值的累加,falg用于不符合条件时跳出while循环/
while (ch != '\n')
{
}/然后用switch语句,sum = sum * 2 + ch - '0'可以将一串二进制的字符转化为数字并且转化为十进制,/
}
if (flag == 0)
{
printf("%d", sum);
}

2.3.2 代码截图

2.3.3 造测试数据

输入数据 输出数据 说明
11111111 255 数据正常
34 error input! 数据异常

2.3.4 PTA提交列表及说明

1.答案错误:不知道二进制转十进制要怎么写,也不知道ch-'0'可以将字符转为数字。
2.部分正确:除一和零以外的数字没有考虑,导致输入其他数字时循环无法执行,也得不出结果。

3.代码互评

  • 同学代码

  • 我的代码

    评价:1.我在循环中使用了pow函数,导致提交时运行超时,而同学使用for函数,将pow函数表达出来。
    2.在输入N后,数的范围已经被确定,同学用for函数去算数的范围,其实直接将范围用N的表达式写出即可。
    3.其余的思路一致。

posted on 2019-10-20 21:24  洪志鸿  阅读(235)  评论(0编辑  收藏  举报