C语言I博客作业09
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/ |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11634 |
| 这个作业的目标 | <掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。> |
| 学号 | <20208941> |
| 1.PTA实验作业 | |
![]() |
1.1解一元二次方程
题目内容描述:解一元二次方程
请编写程序,解一元一次方程 
一元二次方程的求根公式为:

要求:
若 a=0,则为一元一次方程。
若 b≠0,则方程有唯一解,输出这个解;
若 b=0,c≠0,则方程无解,输出“无解”;
若 b=0,c=0,则方程有无穷多解,输出“无穷多解”。
若 a≠0,则为一元二次方程。
若 Δ>0,则方程有两个不等的实根,输出这两个根;
若 Δ=0,则方程有两个相等的实根,输出这两个根;
若 Δ<0,则方程有两个共轭的虚根,输出这两个根。
1.1.1数据处理
数据表达:定义变量a, b, c, x, y, z;浮点型。
数据处理:1.表达式:伪代码如下:
利用解一元二次方程求根公式。先判断无解和无穷解:
if(a==0&&b==0&&c==0){
printf("无穷多解");
}
else if(a==0&&b==0){
printf("无解");
}
再判断一个解:else if(a==0)
再判断判别式。
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 |
| ---- | ---- | ---- |
| 0 4.5 -3.6 | x = 0.8 |
|0 2.8 0 | x = 0 |
|0 0 3.6 |无解 |
|0 0 0 | 无穷多解 |
1.1.4 PTA提交列表及说明

部分正确:判断判别式的时候,等于号打成了赋值号。
1.2统计各位数字之和是5的数
题目内容描述:6-2 统计各位数字之和是5的数 (20分)
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
函数接口定义:
int is( int number );
void count_sum( int a, int b );
函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。
函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式
count = 满足条件的整数个数, sum = 这些整数的和
进行输出。题目保证0<a≤b≤10000。
1.2.1 数据处理
数据表达:定义了n=number,s,a,c,都为整型,判断各位数字是否为5.
伪代码如下: while(number!=0){
sum+=number%10;//取余取整判断位数
number/=10;
}
if(sum==5){
return 1;
}
return 0;//判断是否和为5
}
伪代码如下:void count_sum( int a, int b ){
int count=0,sum=0;
for(a;a<=b;a++){
if(is(a)==1){
count++;
sum+=a;//计算位数之和
}
}
printf("count = %d, sum = %d",count,sum);
}
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 |
|---|---|
| 104 999 | ![]() |
| 1.2.4 PTA提交列表及说明 | |
![]() |
|
| 答案错误:没看清题目,只输出了count,没有输出sum。 | |
| 2.代码互评 | |
| 同学代码 | |
![]() |
|
![]() |
|
| 我的代码 | |
![]() |
第一个同学和我一样用if-else,但输入语句不同。
第二个同学用的while语句。
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 第8周 | 8小时 | 5 | 简单的基础编程 | 无 |
| 第9周 | 10小时 | 44 | 赋值运算、华氏摄氏温度的转换 | 变量之间的转换 |
| 第10周 | 13小时 | 82 | 循环结构、if-else | 如何灵活运用循环结构 |
| 第11周 | 12小时 | 93 | 定义和调用函数 | 如何对现有的代码进行修改,从而写出相似的题 |
| 第12周 | 15小时 | 120 | 多支结构 | 不能熟练的运用多支结构 |
| 第13周 | 15小时 | 328 | switch语句 | 熟练运用switch |
| 第14周 | 18小时 | 432 | do-while语句 | 熟悉使用while和do-while结构解决问题。 |
| 第15周 | 20小时 | 647 | for循环,break,continue语句。 | 熟悉使用break,continue语句。 |
| 第16周 | 22小时 | 873 | 各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。 | 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。 |
| 3.2 累积代码行和博客字数 | ||||
| 时间 | 博客字数 | 代码行数 | ||
| ---- | ---- | ---- | ||
| 第8周 | 347 | 5 | ||
| 第9周 | 425 | 44 | ||
| 第10周 | 983 | 82 | ||
| 第11周 | 1432 | 93 | ||
| 第12周 | 1800 | 120 | ||
| 第13周 | 2382 | 328 | ||
| 第14周 | 3482 | 432 | ||
| 第15周 | 4936 | 563 | ||
| 第16周 | 6341 | 873 | ||
![]() |
3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
1.这周我们学习了使用自定义函数和函数的作用域;
2.对于表达式的使用还是不太熟练,在打代码的时候容易思绪混乱,集中不了,还要继续练习,提升自己;
4.总结起来多问,多翻阅资料,多自己思考,有清晰的思路是真的特别重要!!!







浙公网安备 33010602011771号