C语言I博客作业09

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业09
我在这个课程的目标是 希望能够在学完后能够自己做出一个C语言的小游戏
这个作业在那个具体方面帮助我实现目标 熟悉循环结构的使用,熟悉break、continue的使用
参考文献 C语言程序设计

1.PTA实验作业(20分/题)

1.1(7-2)换硬币

1.1.1数据处理

  • 数据表达:此题我定义了六个整型变量x, fen5, fen2, fen1, total, count;并将total和count赋值为0;其中x代表输入的待换的零钱数额;fen5, fen2, fen1分别表示为5分、2分和1分硬币的数量;total为当前方案所需的硬币总数量,count代表方案的个数

  • 数据处理:

    begin
    定义变量x, fen5, fen2, fen1, total, count
    total←0, count←0;
    fen5 = x / 5;
    while(fen5不等于0)
    {
    	fen2 = (x - fen5 * 5) / 2;
    	while(fen2不等于0)
    	{
    		fen1 = (x - fen5 * 5 - fen2 * 2) / 1;
    		while(fen1不等于0)
    		{
    			total = fen5 + fen2 + fen1; 
    			如果当前计算所得总金额不等于x
    			{
    				fen1--;
    				并跳出本次循环;
    			}
    			如果当前计算所得总金额等于x
    			{
    				输出五分、两分、一分的个数,以及总个数
    				分法+1;
    			}
    			fen2--;
    		}
    		fen5--;
    	}
    	输出总方法数;
    end
    

1.1.2实验代码截图

1.1.3 造测试数据

输入 输出 说明
13 fen5:2, fen2:1, fen1:1, total:4 fen5:1, fen2:3, fen1:2, total:6 fen5:1, fen2:2, fen1:4, total:7 fen5:1, fen2:1, fen1:6, total:8 count = 4 sample 一般小x
8 fen5:1, fen2:1, fen1:1, total:3
count = 1
最小x
100 数据过于庞大就不列出来了 最大x

1.1.4 PTA提交列表及说明

答案错误:这里的答案错误是因为我之前忘记输出count的值了所以导致答案错误,后来在while (fen5 != 0)的循环外加printf("count = %d", count);

1.2(7-3)找完数

1.2.1数据处理

  • 数据表达:此题我定义了四个整型变量m, n, count,并将count赋值为0;其中m和n为输入的取值范围中的最大值而和最小值,count用作做确定既定取取值范围内是存在完数;其中还定义了整型变量i和j分别代表完数和完数的因子;我还定义了一个函数sum(int i)用于判断是否为完数

  • 数据处理:

    begin
    定义函数m、n、count
    count←0;
    for(定义整型变量i;i小于等于n;i++)
    {
    	如果(i等与sum(i))
    	{
    		count++;
    		输出i = ;
    		for(定义整型变量j;j小于i;j++)
    		{
    			如果(i对j取余为零)
    			{
    				如果(j等于1)
    				{
    					输出1;
    				}
    				如果(j不等于1)
    				{
    					输出 + j;
    				}
    			}
    		}
    		换行;
    	}
    }
    如果其中没有完数
    {
    	输出None;
    }
    end
    
    定义函数sum(int n)//判断是否为完数
    定义整型变量sum
    sum←0;
    for(定义整型变量i;i小于n;i++)
    {
    	如果(n对i取余为零)
    		sum等于sum+i;
    	如果(n对i取余不为零)
    		跳出本次循环;
    }
    返回sum的值
    

1.2.2实验代码截图

1.2.3 造测试数据

输入 输出 说明
2 30 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 sample等价
6 28 6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
取完数为边界
2 5 None 空集

1.2.4 PTA提交列表及说明

答案错误:之前在输出的时候少了最前面的1;导致答案错误,后来将因子的输出过程改成了

if (j == 1)
	printf("1");
else
{
	printf(" + %d", j);
}

解决了答案错误的问题

2.代码互评

同学代码:

我的代码:

不同点:我的代码用了函数,对完数进行判断,写起来是麻烦了一点大但是因为我对函数的运用还熟悉,可以在平时的作业中多联系练习,但是同学用的要相对简洁一些

相同点:原理都差不多

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第六周 20小时 372 if-else语句和数学函数 暂无
第七周 10小时 226 分支结构 暂无
第八周 12小时 110 for循环结构 暂无
第九周 16小时 200 函数的声明,定义和调用 暂无
第十周 20小时 323 分支结构,字符型数据类型,ASCII码,逻辑运算符 对于字符型数据类型的运用还是不熟练,需要多加练习
第十一周 18小时 788 分支结构,switch语句,简单的数组的使用 对于数组的了解还是不够,下周还是要多加学习
第十二周 22小时 346 循环结构,while循环和do-while循环 数组和结构体的知识有待加强
第十三周 20小时 463 熟悉break、continue的使用;熟悉使用循环的嵌套解决问题。 最近自学的进度有点落下来了,有必要调整下自己的时间安排

3.2 累积代码行和博客字数

3.3学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

太快了,马上就期末了,最近没有把重心全部放在专业课上,其他的也还是要重新复习一下,所以现在的进度慢了点,但是周末是有必要补上一波的。

原文地址:https://www.cnblogs.com/just-like-this/p/11908389.html