C语言I博客作业09

本周作业头

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530
我在这个课程的目标是 了解函数的分类和类型,熟悉变量的作用域、生存周期和存储类型
这个作业在那个具体方面帮助我实现目标 参考同学的代码,翻阅书籍
参考文献 c语言程序设计(第三版)
学号 20208928
1.PTA实验作业(20分/题)

**1.1 题目1统计某类完全平方数 **
题目描述:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

函数接口定义:

int IsTheNumber ( const int N );

裁判测试程序样例:

#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;
}

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

1.1.1数据处理

数据表达:定义整型变量.n1和n2,b为存储求取余余数的变量,定义p[10]数组,定义m为对n取开二次方后的整数部分。
数据处理:用了int=m=sqrt(n)函数对n进行取整开根,再判断m*m是否等于n;之后用while(n)循环,和for循环

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
100 506 cnt = 7 正确
110 700 cnt = 7 正确
1.1.4 PTA提交列表及说明
部分正确:将if(m*m==n)中m*m打成了m*n

1.2 题目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 = 这些整数的和

裁判测试程序样例:

#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数据处理**
数据表达:全定义为整型变量,函数int is( int number )判断给定正整数的各位数字之和是否等于5;函数void count_sum( int a, int b )统计给定区间内有多少个满足上述要求的整数
数据处理:第一个函数用while循环计算各数之和
 while(number!=0){  
 t=number%10;
 sum=sum+t;
 number=number/10}
第二个函数计算满足整数的和
int s=0,c=0,i;
 for(i=a;i<=b;i++){
 if(is(i)){
 c++;
 s=s+i;

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
106 660 count = 14, sum = 3616 代入正确
221 230 221 is counted.230 is counted.count = 2, sum = 451 代入正确
1.2.4 PTA提交列表及说明

编译错误:void count_sum( int a, int b )后面多加了“;”。
格式错误:printf("count = %d, sum = %d",c,s)忘记打空格

2.代码互评
同学代码1

同学代码2

我的代码

对比:1.第一位学长的方法非常好,简单又好,值得我好好学习。
2.第二位同学的也比我好,只输入了一次字符串,我看完她的代码,觉得我把问题又复杂化了。

3.学习总结(15分)
3.1 学习进度条(5分)

周/日期 这周所花的时间 学到的知识点简介 目前比较迷惑的问题
第十六周12.15-12.20 51 各种类型函数的定义、调用和申明 还不太了解变量的作用域、生存周期和存储类型
第十五周12.8-12.14 45 学习break和continue的使用 不太清楚两者区别
第十四周12.1-12.7 40 学习while循环结构 对while和for循环的区别使用还不够熟练
第十三周11.23-11.30 26 学习switch-case结构 不太理解if-else和switch-case的区别
第十二周 11.11-11.22 25 调用函数,了解char字符型变量,熟悉if-else分支结构 if-else的多种分支嵌套不太懂
第十一周 11.10-11.14 20 定义和调用函数 不太懂清楚定义函数和调用函数的顺序和什么时候该定义函数
第十周 11.2-11.8 19 for循环结构 不是太熟悉for结构中什么语句应该包含循环
第九周 10.26-11.1 18 if-else语句 不太理解if-else和else-if多分支结构的区别
第八周 10.19-10.25 16 对C语言的基本认知 没有
3.2 累积代码行和博客字数(5分)
时间 博客字数 代码行数
---- ---- ----
第八周 1007 15
第九周 537 50
第十周 1250 102
第十一周 1450 160
第十二周 1521 155
第十三周 1425 203
第十四周 1611 256
第十五周 1704 305
第十六周 1650 384

3.3 学习内容总结和感悟(5分
3.3.1 学习内容总结

3.3.2 学习体会
每个人的学习进度条都在进步,自己同时也在努力,我认为现在参考别人的代码可以对自己有进一步的提升和认识,了解他们的思维思路,对自己也有一定帮助,相互借鉴,相互进步。
还有就是还是要多练习代码,提高知识熟练度以及巩固。还有我觉得PTA的作业真的难,我觉得可以降低难度,平均水平一下。

posted @ 2020-12-21 11:41  陈薇  阅读(98)  评论(8编辑  收藏  举报