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题目越来越难了,单靠自己一个人根本做不出,得搜寻一定的资料和解法,但是通过自己动手并理解得到的过程还是挺有意义的
- 一旦遇到题目一长挂的就不想思考了,必须得克服这种问题,提高思维能力
- 在写完自己的代码后,多看看别人的代码可以学习其优秀之处,还能多一种解题思路