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 
#include 

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实验代码截图

C语言I博客作业11_第1张图片

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

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实验代码截图

C语言I博客作业11_第2张图片

C语言I博客作业11_第3张图片

1.2.3 造测试数据

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

1.2.4 PTA提交列表及说明

提交列表说明:

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

2.代码互评

同学代码截图

C语言I博客作业11_第4张图片

自己代码截图

C语言I博客作业11_第5张图片

不同:我们定义的变量数量和表达不一样
相同:我们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 累积代码行和博客字数

C语言I博客作业11_第6张图片

3.3 学习内容总结和感悟

3.3.1学习内容总结

C语言I博客作业11_第7张图片

3.3.2 学习体会

这周学习了函数,由于以前老师讲函数的时候没有认真听,现在对函数理解有些困难
我觉得函数是非常适合用来考选择题的内容,有点怕

你可能感兴趣的:(C语言I博客作业11)