C语言I博客作业11

这个作业属于那个课程 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<a≤b≤10000。

裁判测试程序样例:

#include <stdio.h>
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.2实验代码截图

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);

1.2.2实验代码截图


1.2.3 造测试数据

输入数据 输出数据 说明
6 输入样例
19 输入了数字19
29 输入了数字29
1.2.4PTA提交列表及说明
  • 编译错误:“return 0”错打成“return o”。
  • 段错误:自己是在解决不了。

2.代码互评

我的代码 同学代码
同学代码 我的代码
<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的编程题目做的挺艰难的,有许多需要注意的点还是不会,希望在以后的学习中能学更好。
快要期末了,我想这段时间没有什么课了。就多在慕课软件上听听课,把学过的知识再巩固一遍。做好期末的准备工作。

posted @ 2019-12-05 20:40  戳你脸  阅读(290)  评论(0编辑  收藏  举报