C语言I博客作业09
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-4 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11637 |
这个作业的目标 | 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。 |
学号 | 20209066 |
1.PTA实验作业(20分/题)
1.1 6-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,b,p,m。变量的值一部分是由题意给出,一部分是根据算式计算得出
数据处理:表达式:n=N; p[10]={0}; m=sqrt(n);
流程结构:if语句,while语句,for循环语句
1.1.2实验代码截图
1.1.3 造测试数据
按照以下表格,输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明
输入数据 | 输出数据 | 必要说明 |
---|---|---|
-40 0 | cnt = 0 | 负数里没有满足条件的数 |
105 500 | cnt=6 | 题目样例 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。
提交列表说明:
请按照如下要求说明提交列表,注意必须写明每个错误点,你是怎么解决的。此项没写好,本题0分
编译错误:少打了; 没有理解题意,模仿裁判测试程序样例将int main()也输入了。
1.2 7-1 解一元二次方程 (10分)
解一元二次方程
要求:
若 a=0,则为一元一次方程。
若 b≠0,则方程有唯一解,输出这个解;
若 b=0,c≠0,则方程无解,输出“无解”;
若 b=0,c=0,则方程有无穷多解,输出“无穷多解”。
若 a≠0,则为一元二次方程。
若 Δ>0,则方程有两个不等的实根,输出这两个根;
若 Δ=0,则方程有两个相等的实根,输出这两个根;
若 Δ<0,则方程有两个共轭的虚根,输出这两个根。
1.2.1 数据处理
数据表达:定义了浮点型a,b,c,x1,x2,d,e,f,m,n。 a,b,c直接输入数值,其余的由计算得出数值。
数据处理:表达式: d=b*b-4*a*c;
m=(-b+sqrt(d))/(2*a);
n=(-b-sqrt(d))/(2*a);
e=fabs(-b/(2*a));
f=fabs(sqrt(-d)/(2*a));
流程结构:if-else多分支语句判断
1.2.2 实验代码截图
1.2.3 造测试数据
按照以下表格,输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明
输入数据 | 输出数据 | 必要说明 |
---|---|---|
0 4.5 -3.6 | x=0.8 | 当a=0的情况,一元一次方程,唯一解 |
0 0 5 | 无解 | 当a=0的情况,一元一次方程,无解 |
0 0 0 | 无穷多解 | 当a=0的情况,一元一次方程,无穷多解 |
2 8 8 | x1 = x2 = -2 | 当a≠0的情况,一元二次方程 两个相等的实根 |
3 8 2 | x1 = 0.279241, x2 = -2.38743 | 当a≠0的情况,一元二次方程 两个不等的实根 |
5 1 2 | x1 = 0.1+0.6245i, x2 = 0.1-0.6245i | 当a≠0的情况,一元二次方程 两个共轭的虚根 |
1.2.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。
提交列表说明:
请按照如下要求说明提交列表,注意必须写明每个错误点,你是怎么解决的。此项没写好,本题0分
答案错误:d与0的三个大小比较,我是直接用的与0相比,但是上网查询后才知道要与0.00001比较。
刚开始不懂共轭复数应该怎么表达,通过上网查询和问同学才勉强写完
2.代码互评(5分)
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
同学代码截图
A同学的代码
B同学的代码
自己的代码
A同学:定义了EPS的值为0.00001,简便了表达方式
B同学:代码更为简洁易懂,但是可以把▲表示出来,会让代码更简洁一点
自己:纯按照题目的思路一个个下来,代码也较为复杂,不够简洁,关于共轭也不会,还是靠同学才写出来的
3.学习总结(15分)
3.1 学习进度条(5分)
日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
12/15--12/21 | 15h | 315 | 各种类型函数的定义、调用和申明 | 如何自定义函数以及自定义函数如何使用 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.这周学习了自定义函数和作用域。
2.临近期末,去回顾以前知识点发现在逐渐遗忘。
3.做题目没思路,这个知识点以前提到过,但是还是不懂