一、本周教学内容&目标
第5章 函数 要求学生掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。
二、本周作业头
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10129 |
我在这个课程的目标是 | 掌握各种函数的用法和编译 |
这个作业在那个具体方面帮助我实现目标 | 通过本次作业以及本周教学内容 |
参考文献 | 《c语言程序设计》 |
三、本周作业
1.PTA实验作业
2.代码互评
3.学习总结
四、作业格式
1.PTA实验作业
1.1 题目名1
题目内容描述:
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
1.1.1数据处理
介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:输入int整型n=N;b,p[10]={0}表示初始值为零,m=sprt(n)表示完全平方数的表达
数据处理:输入变量n=N正整数;b,p[10]={0}表示初始值为零,m=sprt(n)表示完全平方数的表达
if(m*m==n)//判断是否满足条件
运用while(n)//n的函数
{
b=n%10;
p[b]++;
n/=10;
} //判断是否有俩个相同的数
for(int i=0;i<=9;i++)
{
if(p[i]>1)
return 1;
} //判断是否满足条件,能否进行运算
return 0;最后运行结束
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 | |
---|---|---|---|
105 500 | 如图所示 | ||
110 600 | 如图所示 | ||
100 500 | 如图所示 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。
编译错误:没有考虑的初始值的问题,导致错误
解决方法:重新考虑初始值都问题,使用m=[10]={0}来控制初始值的问题
编译错误:for循环当中的范围没有处理好
解决方法:在for循环当中从0开始到9结束,运用int整型来定义
1.2 题目2
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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;
}
/* 你的代码将被嵌在这里 */
1.2.1 数据处理
数据表达:运用int整型,运用s=0;表示正整数的个数,t=0;表示正整数的和,运用了while语句,for,if循环结构
数据处理:输入变量s,t,number
while(number!=0){ //判断是否满足条件
t=number%10;
number/=10;
s+=t;
} //求给定的正整数的各位数字之和
if(s==5)
return 1; //各位数之和为5
else
return 0; //各位数之和不为5
}
void count_sum( int a, int b )
{
int sum=0,i;//正整数的和
int count=0;//求各位数字之和
for(i=a;i<=b;i++){
if(is(i)){
count++;
sum+=i;
} //在此范围的正整数符合条件的有哪些
}
printf("count = %d, sum = %d\n",count,sum);
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 | |
---|---|---|---|
104 999 | 104 is counted count = 10,sum = 3720 | 说明这个数有15个,和为3720 | |
5 60 | 5 is counted count = 6,sum = 165 | 说明这个数有5个,和为165 | |
156 896 | 15 is counted count = 10,sum = 3110 | 说明有10个,和为3110 |
1.2.4 PTA提交列表及说明
编译错误:没有考虑到判断在此范围内的各个数字的累加,正整数的和如何用一个if语句来判断
解决方法:重新阅读题目发现我应该运用is(i)函数了表达
编译错误:字母表达怕不记得,我就将字母改成了number来表示,字母打错了
解决方法:仔细观察,发现number被我写成了nunber,改过来就行了。
2.代码互评
同学代码截图 | 自己代码截图 |
---|---|
这个同学和我的代码是一样的思路,但是他的有一点就是他写上了每一个部分的想法后面,我的代码除了变量不同之外,其他都是一样,我之所以拿出这个和我一样的代码是因为他的优点展现在哪里,这才是我想法,把自己的想法写在后面,有利于其他人阅读,能够快速看出代码想表达的意思
同学代码截图:
自己代码截图:
这个代码运用的是do-while循环语句,我用的是while语句,和我的不一样,但是我们的思路都是一样的,都选择了先判断正整数的各个数字,在判断各个数字的和以及正整数的之和。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
等一周9.19-9.27 | 7天 | 28行 | 学会了如何开始进行编辑和简单的程序 | 为什么在编辑时要这么严厉,错一个符号都会是编译错误 |
第二周9.25-910.4 | 5天 | 20行 | 学会了如何用已学知识举一反三 | 为什么有时候用一个字母代表不行,有时候又可以 |
第三周10.8-10.12 | 4天 | 136行 | 难度加大的编程 | 不知道如何简写编程 |
第四周10.15-10.18 | 3天 | 120 | 指定次数的循环程序设计 | 不知道如何将分子和分母都是变量的情况下编写程序 |
第五周10.23-10.26 | 4天 | 89 | 学习函数的运用和表达 | 不知道运用那种流程正确表达函数运用较为正确 |
第六周10.28-11.2 | 3天 | 130 | 学习分支结构多次if-else循环 | 不知道在哪里打上中括号同时满足条件 |
第七周11.5-11.8 | 2天 | 140 | 学习switch语句的运用 | 不知道如何表达switch语句的表达式,还不是很熟练 |
第八周11.12-11.15 | 2天 | 130 | 学习while和do-while的运用 | 条件在while语句中不知道如何表达才是正确的 |
第九周11.19-11.22 | 2天 | 120 | 学习了嵌套循环的运用 | 无 |
第十周11.26-11.28 | 2天 | 135 | 复习了循环语句以及如何读题目 | 嵌套循环还不是很会用 |
第十一周12.4-12.6 | 1天 | 125 | 学习了函数类型,定义,说明等等 | 不知道如何将所学内容串联起来 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.这周的情况不是很好,可能是因为新知识点还没有完全掌握,这周PTA做的也是非常的艰难,很多东西我都无法串联起来,因此这次作业我有观看其他人的代码才能做出来。
2.新知识点还是要多多运用才行,否则我真不知道如何办才好,还得要继续努力才行。
3.总的来说,学习c语言也要结束了,突然感觉时间过的很快,我都来不及准备,就要结束了。希望我能够越来越好。