|
-|-|
这个作业属于哪个课程|C语言程序设计1
这个作业的要求在哪里|https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10127
在本次课程中具体实现的目标|减少用函数来解决各种问题的迷惑,加强对函数的了解
在这个课程的目标是| 自主编写小程序
参考文献|《C 语言程序设计》《C Primer Plus》
1. PTA实验作业
1.1 题目名1 统计某类完全平方数
要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
1.1.1 数据处理
数据处理:
begin
函数接口定义:int IsTheNumber ( const int N );
定义变量n←N,m,div←10,i;
i ← (int)sqrt(N),n ← N的根方并取整;m ← i × i;
ifm=N则int a[10]←{0}[定义一个有10整型元素的数组a,同时数组a内所有元素均初始化为0];当n>0时,进入循环for (int k = 0; k < div; k++);
if(n % 10 ← k)进入循环a[k] += 1计算有多少个这样的整数定义,if(a[k]==2)进入循环for (int k = 0; k < div; k++) ;if (n % 10 ← k)则 a[k] += 1;
定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,则该函数必须返回1,否则返回0
循环计算
end
数据表达:定义了整型变量n,m和数组a[10];循环的嵌套.
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
244 245 | cnt = 0 | 两数之间没有满足条件是完全平方数,又至少有两位数字相同的数字 |
-12 546 | cnt =7 | 两数之间满足条件是完全平方数,又至少有两位数字相同的数字有7个 |
123 345 | cnt =2 | 两数之间满足条件是完全平方数,又至少有两位数字相同的数字有2个 |
1.4PTA提交列表及说明
提交说明
- 编译错误:数组a[10]内所有元素均初始化为0.
- 编译错误:N满足条件没有将该函数必须返回1,不满足是也没有返回0.
- 运行超时:原因不明.可能是内层循环的初始值赋值错误吧?变量之间转换错误?进入死循环?
- 答案错误:将该函数返回1时条件错误
- 部分正确:没有计算所有符合条件的值之和.
1.2 题目名2 统计各位数字之和是5的数
要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.2.1 数据处理
数据处理:
begin
函数接口定义:int is( int number );
定义n;定义sum,赋初始值为0;n = number;
sum += n % 10;n /= 10(除去各位数情况);
if sum←5则返回1,否则返回0;
函数接口定义void count_sum(int a, int b)
定义变量count = 0, sum = 0;
for (int i = a; i <= b; i++);则进入循环if (is(i)){count++;sum += i;}计算输出值count\sum;
end
数据表达:定义了整型变量n,sum,i;运用了嵌套循环.
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
123 765 | count = 12, sum = 3381 | 给定区间之间的各位数字之和等于5的个数为12;给定区间内各位数字之和等于5这些整数的和为3381 |
-12 234 | count =15, sum = 1684 | 给定区间之间的各位数字之和等于5的个数为15;给定区间内各位数字之和等于5这些整数的和为1684 |
1 23 | 23 is counted.count = 3, sum = 42 | 区间端点值23满足条件,给定区间之间的各位数字之和等于5的个数为3;给定区间内各位数字之和等于5这些整数的和为42 |
1.2.4 PTA提交列表及说明
提交说明
- 编译错误:未考虑区间端点值满足条件时的情况.
- 编译错误:for语句后勿加分号.
- 编译错误:变量count\sum未赋值为0.
代码互评
同学代码
自己代码
- 我是通过定义整形变量;当n=1时,输出None;当n=2时,输出3;外层循环,从2开始,b=pow(2,a)-1;内层循环,while(a%b!=0)时,b++.
- 同学是定义整形变量,t=0作为变量标记;当n=1时,输出None;进入外层循环,从2开始,b=pow(2,a)-1,内层循环,从2开始,如果b%i=0,t=1,跳出循环;如果t=0,输出b;t要重置为0,返回主函数。
3. 学习总结
3.1 学习进度条#
周/日期 | 所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
W7 | 15h | 198 | 数据类型中的双精度浮点型double;算数运算符;选择结构if-else语句等 | 常用数据类型的区别 |
W8 | 10h | 87 | 循坏结构,算数运算符中的自增运算符 | 运算符的优先级顺序 |
W9 | 10h | 89 | 函数的声明、定义和调用 | 形参,实参的实质性区别 |
W10 | 10h | 112 | 熟悉并能运用多分支结构及if语句的镶嵌、字符型数据类型和逻辑运算符 | 各类语句的镶嵌用法 |
W11 | 12h | 145 | 运用switch语句处理多分支问题,掌握switch语句 | 多分支的分类怎样处理到位,语句怎样更简洁 |
W12 | 11h | 81 | 用while、do-while语句实现循环程序设计 | while、do-while语句中循环体、循环语句的准确表达 |
W13 | 13h | 134 | 初步了解嵌套循环 | 外层循环、内层循环嵌套代码表述 |
w14 | 15h | 121 | 嵌套循环结构设计巩固 | 嵌套循环内外循环的变量的初始值,及终止循环的条件的正确赋值 |
W15 | 16h | 157 | 确定函数的的功能,局部变量、全局变量和静态局部变量的使用 | 静态局部变量的正确使用及使用范围 |
3.2 累积代码行和博客字数
3.3 学习内容总结
3.3.1 学习内容总结
- 函数调用的一般形式为 函数名(实际参数表).函数的形参必须是变量,用于接受实参传递过来的值;而实参可以是常量、变量或表达式,其作用是把常量、变量或表达式的值传递给形参。实参是主调函数,形参是被调函数。允许不同函数中使用相同函数值。
- return语句只能返回一个值。
- 形参中定义的变量皆为被调函数的局部变量。复合语句中定义的变量也是局部变量。
3.3.2 学习体会
- 马上就要考试了,说不慌都是假的。感觉很多很多东西都是模糊的,都是不懂的。
- 时间安排也有很大的问题,发现了问题就应该努力去改。