C语言I博客作业11

一、本周教学内容&目标##

第5章 函数 要求学生掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。

二、本周作业头##

这个作业属于那个课程|C语言程序设计II
--|:--😐--
这个作业要求在哪里|http://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10095
我在这个课程的目标是|掌握各种类型函数的定义、调用和申(声)明,动态函数,静态函数的运用与区别,理解局部变量和全局变量的异同
这个作业在那个具体方面帮助我实现目标|函数调用,定义函数与声明函数的区别,局部变量和全局变量的区别及用法
参考文献|百度,c语言程序设计,CSDN

三、本周作业##

1.PTA实验作业

1.1 题目名1

6-1 统计某类完全平方数。本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

int IsTheNumber ( const int N );

1.1.1数据处理

数据表达:定义了a,n等整形变量m通过赋值得到。
数据处理:运用了数组a[10]={0}; 定义num的长度为10,因为传入的整数的每位数可能是0~~9,而不是传入数的位数.
while (m > 0)语句遍历N的每一位上的数字,在相应的数组中自加 如果有一个数组元素等于2 说明至少有2个位上的数相同.
流程结构:

<span style="color:red">Begin</span>
int n1,n2;
for ( i←n1; i<←n2; i++ );
if ( IsTheNumber(i) 
cnt++;
cnt+←;
else
return 0;
int n ←(int)sqrt(N*1.0);
	int m = n * n;
        if(m == N)
        int a[10]
        i = m % 10;
	a[i]++;
        else
        return 0;

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
666 676 cnt = 1 666为三个数字相等的数,可却不是某个数的平方数所以cnt = 1,这个N值为676=pow*(26,2).
0 10 cnt = 1 0到10之间只有10的平方数符合条件,说明个位数的平方数不可能有两个位数相等。
105 500 cnt = 6 符合题目要求,程序正确。

1.1.4 PTA提交列表及说明

编译错误:对于代码还是有不注意的时候把while打错,%,/搞混淆。
部分正确:sample 全是3位数,全是4位数,我是没理解题目意思把while语句中的条件写成了m<0,这样的话题目就没有意义没考虑4位数的情况,而且m不能等于0因为等于0包括负数,cnt = 0.

1.2 题目2

6-2 统计各位数字之和是5的数,本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和
函数接口定义:

int is( int number );
void count_sum( int a, int b );

1.2.1 数据处理

数据表达:定义sum,item整形函数
数据处理:运用while语句,if语句void count_sum( int a, int b )定义。
流程结构:

<span style="color:red">Begin</span>
int sum,item;
while(number!←0)
item=number%10;
number=number/10;
sum=sum+item;
if(sum←←5)
    return 1;
    else
    return 0;
end;


1.2.2实验代码截图


1.2.3 造测试数据

输入数据 输出数据 说明
104 999 符合题目要求,程序正确
-104 999 负数也符合题目要求
-104 104 任何实数都符合程序

1.2.4 PTA提交列表及说明

编译错误:取余错误,item我没有取余

2.代码互评##

同学代码截图:

自己代码截图:

我们都运用数组来定义num的长度为10,因为传入的整数的每位数可能是0~~9,而不是传入数的位数,同时用while语句来判断是否是某个数的平方数,且有位数相等。

同学代码截图:

自己代码截图:

我们都用while语句中遍历N的每一位上的数字,在相应的数组中自加 如果有一个数组元素等于2 说明至少有2个位上的数相同。

3.学习总结##

3.1 学习进度条

周数/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题
--|:--😐:--😐:--😐:--😐--
第三周(10/08-10/12)|14小时|约150行|if-else函数|定义函数,for循环
第四周(10/14-10/18)|16小时|约250行|for循环|%lf,%f,%2f的区别
第五周(10/23-10/26)|20小时|约300行|定义函数的调用。while语句|定义函数的运用
第六周(10/30-11/01)|25小时|约400行|分支结构的熟悉与理解|分支结构的运用
第七周(11/05-11/07)|30小时|约480行|switch语句,多分支结构的熟悉与理解|多分支结构的运用
第八周(11/12-11/15)|25小时|约520行|whlie do-whlie语句熟悉与理解|while do-whlie的区别和用途
第九周(11/19-11/21)|25小时|约600行|break、continue的使用 , 熟悉使用循环的嵌套|使用循环的多次嵌套
第十周(11/26-11/28)|25小时|约620行|穷举法|手写代码,分析代码
第十一周(12/03-12/06)|24小时|约500行|局部变量和全局变量的区别及用法|函数调用和声明

3.2 累积代码行和博客字数##

3.3 学习内容总结和感悟##

3.3.1 学习内容总结

3.3.2 学习体会
本周学习了函数及他的作用,怎样去确定函数还有定义函数的调用与声明,而两者的区别是函数的声明与函数的定义形式上十分相似,但是二者有着本质上的不同。声明是不开辟内存的,仅仅告诉编译器,要声明的部分存在,要预留一点空间。定义则需要开辟内存。
函数的定义
函数的定义是一个完整的函数单元:
包含函数类型、函数名、形参及形参类型、函数体等
在程序中,函数的定义只能有一次
函数首部与花括号间不加分号
函数的声明
函数声明只是对编译系统的一个说明:
函数声明是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。
不包含函数体(或形参)
调用几次该函数就应在各个主调函数中做相应声明
函数声明是一个说明语句,必须以分号。还学习了局部函数与全局函数在函数中的使用及区别,还有动态与静态函数的存储及他们的存活期。

posted @ 2019-12-03 21:26  刘泽楷  阅读(810)  评论(1编辑  收藏  举报