这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | 第十一次作业 |
我在这个课程的目标是 | 更熟悉的运用各种函数解决PTA题目 |
这个作业在那个具体方面帮助我实现目标 | 嵌套循环的更好的使用 |
参考文献 | https://blog.csdn.net/liubo_01/article/details/78283656 |
1.PTA实验作业
排名图片
1.1 题目名
6-2 统计各位数字之和是5的数
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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
裁判测试程序样例:
#include
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;
}
/* 你的代码将被嵌在这里 */
输入样例:
104 999
输出样例:
104 is counted.
count = 15, sum = 3720
1.1.1数据处理
数据表达:用了n, i, a, c四个变量,
其中c为字符型,n,i,a都为整形。
数据处理:用到了循环结构,顺序结构。
int is(int number)
{
输入整形变量 c, d, 给sum定义初始值为0;
while number≠0 do
c←number MOD 10
sum←sum+c
number←number/10
if sum=5 Then
输出 1
else
输出 0
void count_sum( int a, int b )
输入整形变量 i, sum1, count 并且给sum1和count定义初始值为0;
for i←a i≤b
Then
if(is(i))
count←count+1
sum1←sum1+i
输出 count sum1
end
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
140 999 | 输入范围内的最小数字1 | |
185 777 | 输入样例 | |
125 225 | 输入数字6 | |
109 228 | 输入超出范围的一个数字 |
1.1.4PTA提交列表及说明
提交列表说明:
题目名
7-1 解一元二次方程
请编写程序,解一元一次方程 ax2+bx+c=0 。
要求:
若a=0,则解一元一次方程。
若方程有唯一解,则输出方程的根;
若方程无解,则输出“无解”;
若方程有无穷多解,则输出“无穷多解”。
若a≠0,则解一元二次方程。
若Δ>0,则输出方程的两个不等的实根;
若Δ=0,则输出方程的两个相等的实根;
若Δ<0,则输出方程的两个共轭的虚根。
所有实数均以%g输出。
输入样例
0 4.5 -3.6
输出样例1
x = 0.8
输入样例
0 0 3.61
输出样例2
无解
输入样例3
0 0 0
输出样例3
无穷多解
输入样例4
-2 0.8 -0.06
输出样例4
x1 = 0.1, x2 = 0.3
输入样例5
-3 1.2 -0.12
输出样例5
x1 = x2 = 0.2
输入样例6
-0.2 0.04 -0.01
输出样例6
x1 = 0.1-0.2i, x2 = 0.1+0.2i
提示:注意实数的负零问题和误差问题。
1.1.2数据处理
`数据表达:使用了i,j,n,a四个变量,且都为整型。
数据处理:用到了顺序结构,分支结构,以及循环结构。
开始
输入浮点型变量 dat, a, b, c, x1, x2, m, n
if a=0 Than
if b≠0 than
x1←(-c / b)
输出实数 x1
否则
if c =0
输出 无穷多解
否则
输出 无解
否则
dat←b^2-4×a×c;
if dat>0
x1←(-b+√dat/(2×a)
x2←(-b-√dat/(2×a)
输出实数 x1,x2
否则
if dat=0
x1←-b/2×a;
x2←-b/2×a;
输出实数 x1,x2
否则
m←-b/(2×a);
n←√-dat/(2×a);
printf("x1 = %f+%fi\n", m, n);
printf("x2 = %f-%fi\n", m, n);
输入数据 | 输出数据 | 说明 |
---|---|---|
6 | 输入样例 | |
19 | 输入了数字19 | |
29 | 输入了数字29 |
同学代码 | 我的代码 |
---|---|
<1>.同学用了for循环语句,而我用的是while语句以及if-else分支结构。
<2>.同学用了求余的表达式并且它的while语句用在整个代码的后面。
3.学习总结
3.1 学习进度条
周 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第七周 | 16个小时 | 105 | 学会运用分支结构和if-else结构 | 运算符方面没有很好的掌握 |
第八周 | 24个小时 | 126 | 学会运用for循环结构以及编写指定次数的循环程序 | 格式问题与不细心导致的问题 |
第九周 | 18个小时 | 150 | 自定义函数的应用 | 对于函数的定义还是不太熟悉 |
第十周 | 15个小时 | 167 | 熟悉使用多分支结构和逻辑运算符了解字符型数据类型 | 多分支结构运用不太熟练 |
第十一周 | 11个小时 | 205 | 学会使用switch语句多分支结构 | 进制之间的转换 |
第十二周 | 8个小时 | 234 | do-while语句和while,for语句的区别 | 怎么写好伪代码 |
第十三周 | 9个小时 | 267 | 嵌套循环和continue语句的写法 | 怎么写好伪代码 |
第十四周 | 12个小时 | 214 | 深度应用循环的嵌套 | |
第十五周 | 13个小时 | 234 |
3.2 累积代码行和博客字数
3.3 学习内容宗结和感悟
3.3.1 学习内容总结
本次课程学习了局部变量和全局变量,以及一些变量的定义形式。
变量类型 | 定义形式 | |
---|---|---|
自动变量 | auto 类型名 变量表 | |
静态变量 | static 类型名 变量表 |
- 在自动变量定义时,auto 可以省略,其形式与以前定义的普通变量完全相同。也就是说前面定义的局部变量都是自动变量。
- 若外部变量与局部变量同名,则外部变量被屏蔽。要引用全局变量,则必须在变量名前家上两个冒号“::”。
- 局部变量与全局变量同名极易导政程序员犯逻辑错误。
- 局部变量一般定义在函数或复合语句的开始处。
- 自动变量只能在函数内复合语句中定义它属于局部变量。
- 静态变量赋初值只在函数第一次调用时起作用,若没有赋初值,系统将自动赋0。
一般情况下把全局变量定义在程序的最前面,即第一个函数前面。
思维导图
3.3.2 学习体会
这次的PTA的编程题目做的挺艰难的,有许多需要注意的点还是不会,希望在以后的学习中能学更好。
快要期末了,我想这段时间没有什么课了。就多在慕课软件上听听课,把学过的知识再巩固一遍。做好期末的准备工作。