C语言I博客作业09

作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-4
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11637
这个作业的目标 努力那个高分,再接再厉
这个作业在那个具体方面帮助我实现目标 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。
参考文献 B站 百度《C语言程序与设计》
学号 20209043

1.PTA实验作业(20分/题)

1.1 6-2 统计各位数字之和是5的数 (20分)

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。

函数接口定义:

int is( int number );
void count_sum( int a, int b );

裁判测试程序样例:

int is( int number );
void count_sum( int a, int b );
int main()
{

    int a, b;
    scanf("%d %d", &a, &b);

    if (is(a)) printf("%d is counted.\n", a);
    if (is(b)) printf("%d is counted.\n", b);
    count_sum(a, b);

    return 0;
}

/* 你的代码将被嵌在这里 */

1.1.1数据处理

数据表达:用了整型变量int,定义了是s,t,number,及I,s,c,等一些变量。
数据处理:在主函数的调用之下,先把数进行拆分,在进行累加并判断是否等于5,之后在此基础上计算满足要求的整数和整数和。
最后void函数之中printf表达出来。

先进行拆分while(number!=0){
	t=number%10;
	s+=t;
	number=number/10;
}在进行判断
 在计算出来for(i=a;i<=b;i++){
 if(is(i)){
  c++;
  s+=i;
}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
104 999 104 is counted. count = 15, sum = 3720 示例
1 666 count = 21, sum = 3885 1和666的给各位数字之和不等于5,不满足第一个
104 221 104 is counted. 221 is counted. count = 8, sum = 1246 104和221都满足各位数字之和等于5

1.1.4 PTA提交列表及说明

编译错误:函数格式的一些要求,没有注意,比如函数声明没有加分号。

部分正确:在计算满足要求的数字之和和整数之和的判断出错,if(is(i)){},这里出错。

答案正确:完善之后,答案正确。

1.2 7-1 解一元二次方程 (10分)

1.2.1 数据处理

数据表达:使用双浮点精度double定义了a,b,c,d.
数据处理:按照题目要求进行编写,以免少情况。我是先把【bb-4a*c】先表示出来,在一步一步表示出来

if(a==0){
        if(b==0){
            if(c==0)
                printf("无穷多解\n");
                else
                printf("无解\n");
            }
            else
                printf("x = %.1g",fabs(-c/b));
        }这是一部分
后面在真对一元二次方程求解

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
0 4.5 -3.6 x = 0.8 题目样例
0 0 0 无穷多解 题目样例
-2 0.8 -0.06 x1 = 0.1, x2 = 0.3 题目样例
1 -0.4 0.04 x1 = x2 = 0.2 题目样例
-0.2 0.04 -0.01 x1 = 0.1-0.2i, x2 = 0.1+0.2i 题目样例

1.2.4 PTA提交列表及说明

编译错误:使用printf函数表达中,进行输出表达,括号太多,容易出现编译错误

部分错误:只有前面两个正确,运行正确答案是0,而我是-0,没有使用fabs来取绝对值。还有为什么要【if(d>0.0005)】【d<=0.0005&&d>=-0.0005】,这是周宽跟我说的,如果不这样写,很难对!!

答案正确:在tql的教导下,对了。

2.代码互评(5分)

同学1代码截图:

-----------分割线-------------

同学2代码截图:

-----------分割线-------------

自己的代码解图:

比较:

1.与同学1相比,同学的基础非常好,运用所学知识解题。我的方法行不通,我不知道如何确定三位数,还是四位等等更高的。而这个方法来源网上,运用了我没还没有学习的数组及指针。巧妙的将每位数储存在数组里。
2.同学2的方法真的看不懂,网上查询才知道if()中的是强制转化。再来for的嵌套。这次代码互评太难了!

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行学到的知识点 简介目前比较迷惑的问题
11/1——11/8 15h how(),sqrt()
11/9——11/15 17h 函数函数的被动定义
11/16——11/22 18.5h 分支结构 字节变量的使用
11/23——11/29 14h switch的分支结构
11/30——12/7 12h 熟悉使用while和do-while结构解决问题 while与其他的套用
12/8——12/13 16h for循环的嵌套 所学习的知识灵活运用
12/14-12/20 16h 函数的相关知识 函数声明类型的使用和被调函数的应用

3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

【新学习的】

3.3.2 学习体会

1.这周让我知道,学习代码不是简简单单的写一下代码那么简单。一是思维,二是学习,彭老师布置的作业总是少不了提前学习和课外学习,不是一时半会就写的出来。仅凭课堂远远不过的。

2.在你学习代码的时候,总免不了出错。我去问别人还要看他愿不愿意教你,对此我只能说另请高就,不用在一棵树上吊死,我就不信了,别你厉害的人不存在,实在不行自己动手。如果你没有时间,我能理解,但是你宁愿打游戏,也不帮。呵呵呵,你很牛逼,我不配问你。

3.在这里我想说,只有自己厉害了,就不用看某人眼色。

posted @ 2020-12-20 16:10  w庆  阅读(145)  评论(1编辑  收藏  举报