作业9
一.作业头
这个作业属于哪个课程 | 计科3班 |
---|---|
这个作业要求在哪里 | 作业9 |
这个作业的目标 | 学会使用自定义函数,明白自定义函数之间的区别,明白全局变量与局部变量之间的区别 |
学号 | 20209026 |
二.本周作业
1.PTA实验作业(20分/题)
1.1统计某类完全平方数 (20分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
include <stdio.h>
include <math.h>
int IsTheNumber ( const int N );
int main()
{
int n1, n2, i, cnt;
scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
if ( IsTheNumber(i) )
cnt++;
}
printf("cnt = %d\n", cnt);
return 0;
}
/* 你的代码将被嵌在这里 */
1.1.1数据处理
数据表达:用到了N,prescribing, power,digit, dacade, hundred,thousand总共7个变量;N是由主函数中的值直接赋值到N,再在主函数的循环体中随着i的改变逐渐改变,prescribing,power,thousand是由计算式直接计算赋值;这7个变量都是整型。
数据处理:用到了有参数有返回值的用户自定义函数;if的嵌套的分支结构。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
0 99 | cnt = 0 | 从一位数到两位数中间应该都为0 |
1.1.4 PTA提交列表及说明
编译错误:没有加分号。
1.2 解一元二次方程 (10分)
*解一元二次方程
请编写程序,解一元一次方程 ax
2
+bx+c=0 。
一元二次方程的求根公式为:
题图.jpg
要求:
若 a=0,则为一元一次方程。
若 b≠0,则方程有唯一解,输出这个解;
若 b=0,c≠0,则方程无解,输出“无解”;
若 b=0,c=0,则方程有无穷多解,输出“无穷多解”。
若 a≠0,则为一元二次方程。
若 Δ>0,则方程有两个不等的实根,输出这两个根;
若 Δ=0,则方程有两个相等的实根,输出这两个根;
若 Δ<0,则方程有两个共轭的虚根,输出这两个根。
1.2.1数据处理
数据表达:用到了a, b, c, discriminant, root,root1, root2,shibu, xubu总共9个变量;a,b,c由scanf输入变量的值,discriminant, root,root1, root2,shibu, xubu都是在后面的不同条件下处理不同的运算;九个变量都是双精度浮点型;
数据处理:数学函数;if的分支结构。
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
-0.2 0.04 -0.04 | x1 = 0.1-0.4i, x2 = 0.1-0.4i | 当为共轨的时候,结果的正确性 |
1.2.4 PTA提交列表及说明
2.代码互评(5分)
2.1 同学代码截图
2.2 自己代码截图
2.3 区别
- 该同学的代码行数比我的代码行简洁了许多,自己的代码看上去非常的胡乱。
- 在与他的作业对比,我的作业比他更加复杂。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
6 10.8~10.11 | 1h | 51 | 打印“ hello world” | 无 |
7 10.12~10.18 | 6h | 60 | 有很多符号分辨不清 | |
8 10.19~10.25 | 10h | 69 | 数学函数的调用 | 对于文件的调试搞不懂 |
9 10.26~11.1 | 10h | 84 | if-else语句 | 无 |
10 11.2~11.6 | 10h | 248 | for语句 | 对于比较难的循环还搞不清循环的次数与循环内容 |
11 10.2~10.13 8h | 8h | 用户自定义函数的使用,理解与明白函数的定义与调用的区别 | 调试的用法 | |
12 10.14~10.20 | 10h | 370 | if的嵌套语句,关于char在使用中的事项 | 关于《C Primer Plus》中有些关于3.4.8的有些概念性的问题较为模糊 |
13 11.21~11.27 | 19h | 543 | 如何简化在switch中有条件的语句,在if与switch都存在时,代码就会看上去就会很多,什么语句可以简化这种呢 | 无 |
14 11.28~12.4 | 20h | 465 | 在条件的选择,以及在循环体中,如何较好的方法去简化代码 | 对于题目所给条件的判断还不是很明确 |
15 12.5~12.11 | 24h | 1052 | 在for循环的镶嵌语句上,知道如何简化自己的代码,知道怎样更加清晰的画流程结构 | 对于for循环的镶嵌还不是太熟练 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
- C语言的学习需要自己努力的钻研。
- 有的时候看见其他同学在自学,而我自己却没有自学,因此我从现在起要开始制定自己的目标,把学习的内容学会!
- 在选择for语句与while语句中,有较好的区别方法,也可以在while中对for循环。简化了我前面的一些题目的过程。