C语言I博客作业11
C语言I作业10:第十五周作业
第5章 函数 要求学生掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。
| 这个作业属于那个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | hhttps://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10032 |
| 我在这个课程的目标是 | 关注函数如何定义以及如何调用 |
| 这个作业在那个具体方面帮助我实现目标 | 通过pta作业进行复习,熟悉函数的运用 |
| 参考文献 | 《C语言程序设计》 |
1.PTA实验作业
1.1 6-1 统计某类完全平方数
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
1.1.1数据处理
数据表达:用int定义整形变量n,i,a.double定义浮点型变量m.
数据处理:用了for循环语句,和if,while语句
伪代码:
begin
函数接口定义:int IsTheNumber ( const int N );
定义变量n,i,a.double定义浮点型变量m.
n=(int) sqrt(N),m=sqrt(N);N=a;
if(a==m*n)则int a[10]←{0}/这里的for循环起到了一个类似于计数器的作用,t依托数组通过数组从0-9的下标对应与输入数N的个十百位.在用下标对应的数计数中出现w数字的次数
定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,则该函数必须返回1,否则返回0
用a代替M是因为const是一个C语言的关键字,它限定一个变量不允许被改变;用一个a代替来解决这个问题
循环计算
end
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 105 500 | 6 | 有6个满足条件的函数 |
| 101 203 | 3 | 有3个满足条件的函数 |
| 0 547 | 7 | 有7个满足条件的函数 |
1.1.4 PTA提交列表及说明

提交列表说明:
格式错误:没找到思路无头苍蝇一样乱撞...
格式错误:int num[10]={0};的[]和{}搞反,导致格式错误.
1.2 6-2 统计各位数字之和是5的数
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和
函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。
函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式
count = 满足条件的整数个数, sum = 这些整数的和
进行输出。题目保证0<a≤b≤10000。
1.2.1 数据处理
数据表达:定义了变量a,b,函数声明int a,int b.
数据处理:
begin
函数接口定义:int is( int number );
定义a;定义b,函数声明int a,int b.
int is(int number)
int digital;
int sum1=0;
digital=number%10;number=number/10;(除去各位数情况);
sum1←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
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 123 765 | count = 12, sum = 3381 | 各位数字之和等于5的个数为12;各位数字之和等于5这些整数的和为3381 |
| 104 999 | count = 15, sum = 3720 | 各位数字之和等于5的个数为15;各位数字之和等于5这些整数的和为3720 |
| 105 200 | count = 3, sum = 363 | 各位数字之和等于5的个数为3;各位数字之和等于5这些整数的和为363 |
1.2.4 PTA提交列表及说明
提交列表说明:

格式错误:for语句中我添加了if-else语句导致答案错误,格式错误是因为一个地方少了个{;
编译错误:没有给sum赋初始值
2.代码互评
同学代码截图
同学甲:

同学乙:

我的代码:

相同点:思路基本相同
不同点:
1.乙同学运用的是for语句循环f++来进行判断循环是否有梅森数
2.甲同学梅森数输出的条件不同与我的不同
3.乙同学和我用了自定义函数进行运算2^i-1的值
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 此前比较迷茫的问题 |
|---|---|---|---|---|
| 第一周 | 2天 | 26行 | 学会了printf()语句,知道主函数 | 整型变量的意义 |
| 第二周 | 3天 | 35行 | 学会计算摄氏温度与华氏温度的转化 | %d的作用 |
| 第三周 | 2天 | 66行 | 学习scanf()语句,定义变量,if-else结构 | if-else语句使用方法 |
| 第四周 | 3天 | 132行 | 学会了for()语句 | %lf的使用 |
| 第五周 | 2天 | 137行 | 对函数的定义和调用有初步的认识 | 在函数的定义中是否可以输入形参的值 |
| 第六周 | 3天 | 144行 | 加深对if-else分支结构的认识,字符型变量和常量的定义以及字符型输入输出函数 | 字符型数据的输出 |
| 第七周 | 2天 | 126行 | 学会switch语句,用switch语句处理多分支选择问题 | 每行case后需要break跳出 |
| 第八周 | 2.5天 | 85行 | 学习了while语句,do-while语句,属于循环语句一种 | 两种语句的区别 |
| 第九周 | 3天 | 61行 | 初步了解循环嵌套,学会了简单的循环嵌套 | 当循环嵌套较多时,不知道部分循环语句该在什么时候跳出 |
| 第十周 | 2天 | 92行 | 综合介绍循环结构的程序设计 | 一些题目存在逻辑问题 |
| 第十一周 | 2.5天 | 77行 | 函数的定义和调用 | 函数调用的先后顺序 |
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结


浙公网安备 33010602011771号