C语言I博客作业11

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业11
我在这个课程的目标是 熟练运用循环结构以及更合理的算法
这个作业在那个具体方面帮助我实现目标 在完成pta作业时能帮我更好地理解
参考文献 C语言程序设计

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来接受N乘以1.0的平方根,m来表示n的平方;还定义了一个十位的数组a来储存n,i用来收集m除以10后的余数。
数据处理:伪代码:
int IsTheNumber ( const int N )
{
定义 n = N乘以1.0的平方根
定义 m = n的平方
if( m等于N)
{
定义 数组a[10]={0};
while (m>0)
{
int i = m除以10的余数

        a[i]累加
        if(a[i]==2)
        返回值为1;
        m/=10;
    }
}
 返回值为0

}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
105 500 cnt 6 105~400中有6个类完全平方数
101 1001 cnt = 8 101~1001中有8个类完全平方数
618 728 cnt = 618~728中有1个类完全平方数

1.1.4 PTA提交列表及说明

编译错误:定义n时,应该是N乘以1.0,我忽略了还需要加个小数点,后面改了后再在VS上编译了几遍后便通过了

1.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;

}

/* 你的代码将被嵌在这里 */
输入样例:
104 999
输出样例:
104 is counted.
count = 15, sum = 3720

1.2.1 数据处理

数据表达: 自定义函数is, count_sum,定义整型变量s,t用于while循环count,sum,count为满足条件的整数个数, sum为这些整数的和
数据处理:伪代码:
自定义函数is
定义整数变量s = 0, t = 0,用于while循环
while (n 不等于 0)
{
t 等于n除以10的余数
n 等于自身除以10
s 等于自身加上t
}
如果 (s == 5)
返回值为1

返回值为0
}
自定义函数count_sum
{
定义整形变量 sum = 0, count = 0, i;
for (i = a; i <= b; i++)
{
如果 is返回值为1
{
count++;
sum等于自身加i
}
}
输出count,sum
}

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
104 999 104 is counted.
count = 15, sum = 3720 104~999中有15个各位数字之和是5的数,它们的和为3720
618 728 count = 0, sum = 0 618~728中没有各位数字之和是5的数,故和为0
1 100 count = 6, sum = 165 1~100中有6个各位数字之和是5的数,它们的和为165

1.2.4 PTA提交列表及说明


编译错误:不仅仅是编译错误,完全忽略了s=5的1情况,还有一些没打出来
部分正确:这次只通过了 “区间内完全没有” 这一个测试点,后面借鉴了百度嘻嘻,然后再在VS上编译,才全部通过

同学代码截图

同学代码截图

自己代码截图


1.与第一位同学相同的是我们定义的count_sum函数是一样的,只不过前面他是定义了n并将number赋值于n, 而且while语句和他的不一样,他的更简洁一点吧
2.与第二位同学不同的是他的代码自定义is函数定义用的是for循环,而我用的是while循环
3.而且第二位同学的是直接累加计算余数,这里我和他也不同,我分开了,他的应该相对好一些

3.学习总结

3.1 学习进度条

日期/周 这周所花的时间/小时 代码行数 学到的知识点 目前比较困惑的地方
第四周 5 68
第五周 6 86
第六周 15 168
第七周 7 127
第八周 20 268 for循环语句 一些符号语句的含义
第九周 24 298 fact语句 符号的含义
第十周 26 324 字符型数据类型和逻辑运算符 部分逻辑运算符的含义
第十一周 20 278 多分支结构switch语句 分支结构内部的区别于联系以及数组
第十二周 28 422 while语句与do-while语句 do-while语句和数组
第十三周 25 287 brerak,continue语句和嵌套式语句 基础知识不牢固
第十四周 20 420 熟练运用循环结构并学会将代码合理化 数组学了一点却还不会实际运用
第十五周 21 411 将基础知识巩固并优化代码 老师讲的新知识还不能完全理解还不会运用

3.2 累积代码行和博客字数

日期/周 博客字数 代码行数
第四周 623 50
第五周 640 70
第六周 1024 196
第七周 1941 286
第八周 3068 426
第九周 3462 486
第十周 4068 596
第十一周 5266 742
第十二周 6408 1031
第十三周 7829 1318
第十四周 8645 1509
第十五周 10021 1920

3.3 学习内容总结和感悟

3.3.1 学习内容总结

呼! 还是不得不感叹时间过的真快,转眼这就是最后一次作业了,而且真的感觉比之前的题难了好多个度,之前的题都还能理解题意,这次的编程题我题目都没看懂,其实也还是自己太差了吧。通过这么多次的博客与PTA作业,从最开始啥也不懂到现在对C语了解后慢慢的会做一些简单的题了(难题还是不太会)。然而现在对于期末考试还是有点慌,就希望在接下来还有几天的时间里进行恶补一下,一直相信只要用心没有啥是学不好的(前提是得自律点哈哈),加油加油!

posted @ 2019-12-06 20:50  就这样吗  阅读(277)  评论(5编辑  收藏  举报