C语言Ⅰ博客作业09

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-4
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11637
我在这个课程的目标是 熟悉巩固自定义函数的使用
学号 20209058

1.PTA作业

1.1 统计某类完全平方数

本题要求实现一个函数,判断任一给定整数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 数据处理


数据表达:定义了传入的数据整型m和每一位上的数整型temp,以及一个长度为10的整型数组;
数据处理:将数组里的10个值初始化为0,再对n作完全平方判断,
if(n*n==m)&&while(m>0)将每一位上的数字通过取余取整得到,
for(int i=0 ;i<=9;i++)如果temp和i相等,就在相应的数组自加,
if(num(i)>=2)就返回1,如果这些条件都不满足就返回0.

1.1.2 实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
105 500 cnt = 6 题目样例
-144 0 cnt = 0 当测试数全为负数时
-225 100 cnt = 1 当测试数范围是从负数到正数

1.1.4 PTA提交列表及说明

1.部分正确:一开始没想到用数组,关于每一位数字大小的比较只想到前者比较后者,不能想到怎么比较每一位的值
2.答案正确:在网上查了后才知道怎么用数组解决数字相同问题,只要数组中的其中一个地址中的元素为2即可

1.2 解一元二次方程

请编写程序,解一元一次方程 ax+bx+c=0

要求:
若 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是否为0判断无穷多解与无解
if(a==0){
        if(b==0){
            if(c==0)
                printf("无穷多解");
                else printf("无解");}
再利用判别式与接近0的数的关系计算相应的实数解与虚数解

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
0.3 0 0 x1 = x2 = 0 两个相等且均为0的实根
-2 0.8 -0.06 x1 = 0.1, x2 = 0.3 两个不等的实数根
3 0 0.27 x1 = 0+0.3i, x2 = 0-0.3i 两个不等的虚数根

1.2.4 PTA提交列表及说明

1.部分正确:输出的结果出现了负0问题以及求出来的根个数不对问题
2.答案正确:参考了别人的答案,加上了绝对值函数,并将判别式与0的比较改成了与一个接近于0的数的比较

2.代码互评

同学1代码

同学2代码

我的代码

1.第一位同学先将每一位的数算出来,再在相应的数组自增,等全部算完自增后利用for循环遍历每一个数组的元素
2.第二位同学每算完一个数就看相应的数组元素是否为2,是的话直接跳出循环
3.我的是每算完一个值就用for循环去看那一位对应的数组元素是否为2,虽然都有点细微的区别,但整体思路都是用数组解决数字重复问题,目前我也没想出并找到十分严谨的其他办法

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 学到的知识点简介 目前比较困惑的问题
12/13-12/20 8h 函数的定义以及相关的基础语法问题 如何解决复杂的函数问题

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2学习体会

  • pta题目越来越难了,单靠自己一个人根本做不出,得搜寻一定的资料和解法,但是通过自己动手并理解得到的过程还是挺有意义的
  • 一旦遇到题目一长挂的就不想思考了,必须得克服这种问题,提高思维能力
  • 在写完自己的代码后,多看看别人的代码可以学习其优秀之处,还能多一种解题思路
posted @ 2020-12-19 12:41  GitHub$  阅读(172)  评论(0编辑  收藏  举报
/* 点击爆炸效果*/
/* 鼠标点击求赞文字特效 */ /*鼠标跟随效果*/