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.做题目没思路,这个知识点以前提到过,但是还是不懂
posted @ 2020-12-21 19:40  战战的老婆  阅读(74)  评论(0编辑  收藏  举报