C语言|博客作业11

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业的要求在哪 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10130
我在这个课程的目标是 更加深入的了解C语言,打好基础
这个作业在哪个具体的方面帮助我实现目标 对代码加深了理解,学习了函数
参考文献 《C语言程序设计》《百度》

1.PTA实验作业

1.1 统计某类完全平方数

  • 题目内容:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
    函数接口定义:
    int IsTheNumber ( const int N );
    其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。

1.1.1 数据处理

数据处理:这是一个自定义函数,定义了i, a[100],b, count = 0,j;,这些属于整型变量。
数据分析:int IsTheNumber(const int N)     /*函数首部*/
{
int i, a[100],b, count = 0,j;  /*定义变量*/
i = N;
b = sqrt(i);
if (b*b==i)   /*输入条件*/
{
    while (i > 0)  /*循环语句,i←0*/
    {
        a[count] = i % 10;
        i = i / 10;
        for (j = 0; j < count; j++) /*for循环,j←count*/
        {
            if (a[count] == a[j])
                return 1;
        }
        count++;
    }
}
    return 0;

}

1.1.2 实验代码截图

C语言|博客作业11_第1张图片

1.1.3 造数据测试

输入数据 输出数据 说明
105 500 cnt = 6 有六个完全平方数
200 500 cnt = 4 有四个完全平方数
300 900 cnt = 5 有五个完全平方数

1.1.4 PTA提交列表及其说明


* 编译错误:符号错误,有一个分号忘记打了

1.2 解一元二次方程(*)

  • 题目内容:请编写程序,解一元一次方程 ax2+bx+c=0 。
    要求:
    若a=0,则解一元一次方程。
    若方程有唯一解,则输出方程的根;
    若方程无解,则输出“无解”;
    若方程有无穷多解,则输出“无穷多解”。
    若a≠0,则解一元二次方程。
    若Δ>0,则输出方程的两个不等的实根;
    若Δ=0,则输出方程的两个相等的实根;
    若Δ<0,则输出方程的两个共轭的虚根。
    所有实数均以%g输出。

1.2.1 数据处理

* 数据处理:定义了a,b,c,sum,x,x1,x2,m,n;这些变量属于双精度浮点型变量
* 数据分析:double a,b,c;  
double sum;               /*定义变量*/
double x,x1,x2,m,n;
scanf("%lf %lf %lf",&a,&b,&c); 
if(a==0&&b==0&&c==0)       /*设置判断条件*/
printf("无穷多解");             /*输出*/
else if(a==0&&b==0)            /*设置判断条件*/
printf("无解");                 /*输出*/
else if(a==0)
printf("x = %.1g",fabs(-c/b));
else 
{
    if(b*b-4*a*c>EPS{       /*设置判断条件*/
        x1=(-b+sqrt(b*b-4*a*c))/(2*a);
        x2=(-b-sqrt(b*b-4*a*c))/(2*a);
        printf("x1 = %g, x2 = %g",fabs(x1),x2);  /*输出*/
    }
    else if(-EPS<=(b*b-4*a*c)&&(b*b-4*a*c)<=EPS)  /*设置判断条件*/
    {
        x1=(-b)/(2*a);
        x2=x1;
        printf("x1 = x2 = %g",fabs(x1));/*输出*/
    }
    else
    {
        m=(-b)/(2*a);
        n=fabs(sqrt(4*a*c-b*b)/(2*a));
        printf("x1 = %g+%gi, x2 = %g-%gi",fabs(m),n,fabs(m),n);  /*输出*/
    }

1.2.2 实验代码截图

C语言|博客作业11_第2张图片

1.2.3 造数据测试

输入数据 输出数据 说明
0 4.5 -3.6 x = 0.8 只有一个解
0 0 3.6 无解 无解
-2 0.8 -0.06 x1 = 0.1, x2 = 0.3 有两个解

1.2.4 PTA提交列表及其说明

* 编译错误:没看懂题目,代码没得打对。
* 答案错误:符号没对,所以部分正确。

2.代码互评

  • 左:我的代码 右:同学代码
    C语言|博客作业11_第3张图片

  • 我们的代码都用了数组,都用了while循环,还有for循环嵌套语句,其次,我们都用了数学函数,不过函数的类型不同,我们的变量都不同

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 两天 32行 对代码有了简单的了解 对题目看不懂,理解不了代码的意思
第二周 三天 21行 开始理解代码符号的意义,懂得了输入输出函数 自己理解的还不足以完全的看懂一个代码
第三周 三天 89行 知道怎么使用if-else语句,理解了更多的符号 对很多代码的格式不是很理解
第四周 四天 69行 学会了for循环语句代码的编译 一些符号的含义
第五周 两天 89行 了解了fact函数,如何更间接的打代码 对fact函数不太了解
第六周 三天 152行 学了字符型变量和常量字符型输入和输出 不清楚逻辑运算
第七周 两天 183行 学习了switch语句 对循环语句有些无法分清
第八周 一天 84行 学习了while循环语句,和do-while循环语句 两语句还不能在实际中很好的运用
第九周 一天 99行 学习了for循环语句 对此次的内容不太了解
第十周 一天 74行 加深了对for循环嵌套语句的理解和使用 对while和continue语句不会使用
第十一周 一天 88行 学习了什么是函数 不太懂函数的定义

3.2 累计代码行和博客字数

C语言|博客作业11_第4张图片

3.3 学习内容总结和感想

3.3.1 学习内容总结

C语言|博客作业11_第5张图片

3.3.2 学习体会

  • 在这一周中,学习了什么是自定义函数、什么是库函数,不过可能是实践操作的太少,对这些东西都不太懂,需要课后多花时间。

你可能感兴趣的:(C语言|博客作业11)