C语言I博客作业11

问题|答案
---|:--😐:--😐---:
这个作业属于哪个课程|C语言程序设计II
本周教学内容&目标|第5章 函数 要求学生掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。
这个作业要求在哪里|https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10130
我在这个课程的目标是|熟练掌握C语言及各大编译器
这个作业在那个具体方面帮助我实现目标| 完成PTA作业,参考课本
参考文献| 《百度》《C语言程序设计》

1.PTA实验作业

1.1 题目:6-1 统计某类完全平方数

本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
#include <stdio.h>
#include <math.h>

int IsTheN,umber ( 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;
}
/* 你的代码将被嵌在这里 */

1.1.1数据处理

  • 数据表达:

变量|变量来源|变量类型
---|:--😐:--😐---:
a,b,c,n,m,d[10]|输入|int

  • 数据处理:

伪代码:

int a,b,c,n,m;
int d[10] ← {0};       //定义数组来储存数据
for(a ← 1 to sqrt(N))
    b ← 0;
if(N==a*a)
    n ← N;
    while(n)
        c ← n%10;
        d[c]++;
        n ← n/10;
for(m ← 0 to 10)
    if(d[m]>=2)
            b ← 1;
            return 1;
if(b==0)
return 0;

1.1.2实验代码截图

1.1.3 造测试数据

输入数据|输出数据|说明
---|:--😐:--😐---:
105 500||105到500之间有6个数是完全平方数,又至少有两位数字相同
1 666||1到666之间有7个数是完全平方数,又至少有两位数字相同
1 1000||1到1000之间有9个数是完全平方数,又至少有两位数字相同

1.1.4 PTA提交列表及说明

提交列表说明:

看到题目时一脸懵逼,好难做啊
然后通过看同学代码,问同学才得以做出来
在DVE C++上运行多次。直到正确后复制黏贴到PTA上

1.2 题目: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;
 }

/* 你的代码将被嵌在这里 */

1.2.1数据处理

  • 数据表达:

变量|变量来源|变量类型
---|:--😐:--😐---:
n,m,x,sum,a[10]|输入|int

  • 数据处理:

伪代码:

int n ← number,m ← 0,x,sum ← 0;
int a[10] ← {0};                   //定义数组来储存数据
while(n)
    m ← n%10;
    a[m]++; 
    n/=10;
for(x ← 0 to 10)
    sum ← sum + x*a[x];
if(sum==5)
    return 1;
else
    return 0;

void count_sum( int a, int b )
int count ← 0,sum ← 0;
for(a ← a to b)
    if(is(a)==1)
        count++;
        sum ← sum + a; 
输出count,sum

1.2.2实验代码截图

1.2.3 造测试数据

输入数据|输出数据|说明
---|:--😐:--😐---:
104 999||104的各位数字之和等于5,给定区间内有15个满足题目要求的整数,这些整数的和为3720
1 666||给定区间内有21个满足题目要求的整数,这些整数的和为3885
888 1666||给定区间内有15个满足题目要求的整数,这些整数的和为17220

1.2.4 PTA提交列表及说明

提交列表说明:

有了上个题目的做题经验这题,可以看懂很多了
但是有些硬伤是很难解决的
所以这题也是在同学的帮助下完成的

2.代码互评

同学代码截图

自己代码截图

不同:我们定义的变量数量和表达不一样
相同:我们while语句里的运算一样只是符号不同

3.学习总结

3.1 学习进度条

周/日期|这周所花时间|代码行|学到的知识点简介|目前比较困惑的问题
---|:--😐:--😐:--😐:--😐---:
四/9.17-9.27|12个小时|28行|C语言入门·markdown语法|计算机语言表达
五/9.24-10.04|12个小时|29行|温度转化·提问的智慧|无
七/10.08-10.12|14个小时|87行|流程结构·if-else语句|流程结构的循环结构
八/10.15-10.18|24小时|85行|for循环语句的使用|Dve C++与PTA的要求不一样
九/10.22-10.26|15小时|96行|函数的定义,调用|不同函数的用法
十/10.29-11.02|10小时|162行|多分支结构、字符型数据类型和逻辑运算符|多分支结构
十一/11.05-11.11|10小时|119行|多分支结构switch语句的使用|switch语句的运用
十二/11.12-11.16|15小时|94行|熟悉使用while和do-while结构解决问题|使用do-while结构
十三/11.19-11.22|8小时|84行|熟悉使用循环的嵌套解决问题|书写伪代码,使用continue
十四/11.26-11.29|9小时|122行|根据实际情况,选择合适的算法、合理的循环结构|循环嵌套结构的实际运用
十五/12.03-12.06|12小时|77行|函数 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型|函数的申明和定义

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1学习内容总结

3.3.2 学习体会

这周学习了函数,由于以前老师讲函数的时候没有认真听,现在对函数理解有些困难
我觉得函数是非常适合用来考选择题的内容,有点怕
posted @ 2019-12-06 18:16  朱艳妮  阅读(202)  评论(0编辑  收藏  举报