C语言I博客作业09

||
-|-|
这个作业属于那个课程|C语言程序设计II
这个作业要求在哪里|作业要求
我在这个课程的目标是|会使用c语言进行编程序
这个作业在那个具体方面帮助我实现目标|写PTA作业,帮助自己进行总结
参考文献|完数

1.PTA实验作业

1.1换硬币

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

输入格式:

输入在一行中给出待换的零钱数额x∈(8,100)。

输出格式:

要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。

输入样例:

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

1.1.1数据处理

数据表达:定义整型变量money, fen5, fen2, fen1, total, count,money为输入的钱数,fen5为5分钱的个数,fen2为5分钱的个数,fen1为1分钱的个数,total为每种换法硬币的个数,count为多少种换法。
数据处理

定义整型变量money, fen5, fen2, fen1, total, count,money为输入的钱数,fen5为5分钱的个数,fen2为5分钱的个数,fen1为1分钱的个数,total为每种换法硬币的个数,count为多少种换法。

	输入多少钱money;
	计算5分钱最多能有多少个 fen5;
	for (fen5; fen5 >= 1; fen5--)
	
		for (计算2分硬币个数 fen2; fen2 >= 1; fen2--)
		
			算出1分硬币的个数;
			计算总几个硬币;
			count累加;
			输出5分硬币几个2分硬币几个1分硬币几个 共几个硬币;
		end for
	end for
	输出多少种换法;

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
8 fen5:1, fen2:1, fen1:1, total:3 count = 1 8分换取零钱有1种方法
10 fen5:1, fen2:2, fen1:1, total:4
fen5:1, fen2:1, fen1:3, total:5 count = 2
10分换取零钱有2种方法

1.1.4 PTA提交列表及说明

提交列表说明:
这题主要还是个循环的问题,先保证每种硬币都有一个,然后从5分的硬币开始减,最后减到1,再从2分的硬币开始减,减到0循环结束。

1.2 找完数

所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。

输入格式:

输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。

输出格式:

逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。

输入样例:

2 30

输出样例:

6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

1.2.1数据处理

数据表达:定义整型变量m, n, i, k, j, a, num,m和n为输入的数,i、k和j都用于循环,a用于判断有没有完数,num用于算完数的因子和。
数据处理

定义整型变量m, n, i, k, j, a, num,m和n为输入的数,i、k和j都用于循环,a用于判断有没有完数,num用于算完数的因子和。

	输入m和n;
	for (i = m; i <= n; i++)
	
		for (k = 1; k < i; k++)
		
			if   i % k == 0  then
				num累加k;
		end for
		if  num == i  
                                {
			输出"完数 = 1";
			for (j = 2; j < i; j++)
			
				if  i % j == 0 then
					输出" + 因子数";
			end for
			换行;
			a累加;
                                }
		num赋值为0;
	end for
	if  a == 0   then
		输出None;

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
1 6 6 = 1 + 2 + 3 1到6这个范围完数只有6
2 30 6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
2到30这个范围完数有6和28

1.2.4 PTA提交列表及说明

提交列表说明:
部分正确:没有考虑范围内没有完数的情况,最后加上没有完数就输出None

1.3跟奥巴马一起画方块

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

输入格式:

输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。

输出格式:

输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。

输入样例:

10 a

输出样例:

aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

1.3.1数据处理

数据表达:定义整型变量n, i, j, num,定义字符型变量c,i和j用于循环,n为输入的整数,c为输入的字符,num为四舍五入后的行数。
数据处理

定义整型变量n, i, j, num,定义字符型变量c,i和j用于循环,n为输入的整数,c为输入的字符,num为四舍五入后的行数。

	输入整数n和字符c;
	计算行数进行四舍五入;
	for (i = 0; i < num; i++)
	
		for (j = 0; j < n; j++)
		
			输出c;
		end for
		换行;
	end for

1.3.2实验代码截图

1.3.3 造测试数据

输入数据 输出数据 说明
4 a aaaa
aaaa
输出了个累矩形
4 * ****
****
输入什么符号就输出什么符号

1.3.4 PTA提交列表及说明

提交列表说明:
部分正确:四舍五入时用n/2,整数除以整数为整数,做不到四舍五入,后面改成了n/2.0,转换成浮点型。

2.代码互评

同学代码截图

自己代码截图

1.他用了3层循环套用,第一层用来处理5分钱的,第二层处理2分钱的,第三层处理1分钱的
2.我是套用了2层循环,先在最外面进行5分钱的处理,再进入循环跟他的就差不多了,我是把硬币总数算出来再输出,他是直接输出的

同学代码截图

自己代码截图

1.我的四舍五入跟他的四舍五入不同,我是浮点型计算加0.5然后转整型,他是写了个判断条件加1。
2.我们的循环嵌套都是一样。主要不同就是四舍五入的算法

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第四周 10 50 学会了简单输出
第五周 20 100 学会了输入
第六周 10 150 学会了if-else
第七周 5 80 学会了for
第八周 30 300 学会了switch语句r 对char的用法还不怎么会
第九周 20 335 简单的了解了函数的使用 自定义函数还不太会
第十周 20 343 学习了指针 还不知道指针具体的用处
第十一周 25 503 学习指针 感觉指针好难啊
第十二周 30 489 学习了结构体 指针还是不会
第十三周 30 265 学习了预处理 预处理的套用比较多,多层套用不会

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

这周讲了continue和break的用法,continue是结束本次循环,直接进行下次循环,break是直接结束循环。
c语言的语法就那么几条,写题目也就用那几条语法,但当这些语法互相嵌套时就会变得复杂,现在做题也就是这几个语法套用。只要多刷题题目类型见多了,做题目就简单了。目前我还处于刷题阶段,我的目标是能写出程序,但现在还没有任何程序方面的接触。

posted @ 2019-11-20 18:46  ahhhhhhhhhhhhhh  阅读(470)  评论(1编辑  收藏  举报