代码改变世界

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 题目名

6-1 统计某类完全平方数 (20分)
 

本题要求实现一个函数,判断任一给定整数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 题目名

  6-2 统计各位数字之和是5的数 (20分)
 

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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<ab≤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循环来叠加寻找。

 

三、学习总结与体会

 

 

学习总结:经过这个星期的学习,学会了各种类型函数的定义、调用和申明,并深入了解了变量的作用域、

生存周期和存储类型,从而更好地解决问题。期末了,只要用心准备,相信一定能取得好的成果!