C语言I博客作业11
2019-12-06 17:34 Sapphire丶 阅读(241) 评论(0) 编辑 收藏 举报一、表格
问题 | 答案 |
---|---|
这个作业属于哪个课程? | C语言程序设计II |
这个作业要求在哪里? | http://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10132 |
我在这个课程的目标是什么? | 了解函数的定义和使用,讨论变量与函数之间的关系 |
这个作业在哪个具体方面帮助我实现目标? | 函数类型的了解(库函数,自定义函数),变量的参数形式及传递 |
参考文献 | 百度 C语言程序设计 |
二、PTA作业
1、PTA实验作业
1.1 题目名
本题要求实现一个函数,判断任一给定整数N
是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N
是用户传入的参数。如果N
满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
#include <stdio.h>
#include <math.h>
int IsTheNumber ( const int N );
int main()
{
int n1, n2, i, cnt;
scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
if ( IsTheNumber(i) )
cnt++;
}
printf("cnt = %d\n", cnt);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
105 500
输出样例:
cnt = 6
1.1.1 数据处理
数据表达:通过读题后简要条件用函数判断N是否为完全平方数且两个数字相同,给定正整数N。
数据处理:所以说首先思路为肯定有两次循环分别返回0,1,定义循环变量i,j,再定义count计数。因为实参是N,整型形参是i,j,b等,
所以用数组来做比较方便。
用i来接受N,首先用b定义完全平方数,while来判断完全平方数,用数组来不断盛放数据,
通过for循环与if条件语句一同在最后判断是否有相同元素。
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 500 | count=6 | 首先带入pta数据看程序是否成立 |
0 -2 | count=0 | 能够判断负数与不存在的情况,考虑周全 |
144 676 | count=2 | 踢中条件也成立,说明整体能够成立 |
1.1.4 PTA提交列表及说明
此题综合性比较强,涉及到for循环,if条件选择,whlie判断,自定义函数的运用,数组的灵活使用,所以思路比较复杂,
考虑的方面要比较全面才能确保正确。但是代码完成性就比较简单,只要你思路清晰了以后就能够比较快的打出。其实一般的题目来说
都会是思路比较难想的话,实际代码输入与操作就相对简单。 思路比较简单的话,就需要系统自身多次计算判断,并在编译
代码是稍微复杂一点。此题在先打草稿之后再通过比较方便。
1.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<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.2.1 数据处理
数据表达:读题之后,定义整型变量 a,i, sum=0,count=0, x,j,count=0,sum=0。主,运用函数“int is( int number )”和“void count_sum( int a, int b )”;
实参是number,a,b;形参是a,i,sum,j,count,if条件语句来判断a,b的大小关系保证下一步循环从小到大开始,通过for循环来实现不断选择。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 | count = 15, sum =3720 | 首先代入pta数据看程序是否成立 |
13 15 | count = 1,sum =14 | 看最小区间能不能满足条件 |
9 11 | 0 | 不在区间内 |
1.2.4 PTA提交列表及说明
编译错误:一开始没有考虑第一个函数, 并且多添加了<stdio.h>
这类习惯错误不能经常犯,一旦养成很难改变,希望下次一定一定要注意。然后提交了两次我是在确认一个空格与其他的是否需要修改,下次能够记住。
2、代码互评
同学代码
自己的代码
这是6-1统计完全平方数的题目的两份代码,相同之处是都是通过自定义函数,借助数组,if条件语句,
for循环来整构函数与条件。不同之处就是一个使用了break跳出循环,且数组的运用较好。一个是直接
return 1回去,通过for循环来叠加寻找。
三、学习总结与体会
学习总结:经过这个星期的学习,学会了各种类型函数的定义、调用和申明,并深入了解了变量的作用域、
生存周期和存储类型,从而更好地解决问题。期末了,只要用心准备,相信一定能取得好的成果!