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 实验代码截图

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 实验代码截图

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.代码互评
-
左:我的代码 右:同学代码
![]()
-
我们的代码都用了数组,都用了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 累计代码行和博客字数

3.3 学习内容总结和感想
3.3.1 学习内容总结

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


浙公网安备 33010602011771号