这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | 链接 |
我在这个课程的目标是 | 掌握C语言以及熟练运用 |
这个作业在哪个具体方面帮助我实现目标 | 询问同学,百度,vs2019上的报错 |
参考文献 | 链接 |
1.1 题目名
6-1 统计某类完全平方数
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
1.1.1数据处理
整型变量:int IsTheNumber(const int N)
{
int m,n,i,j;
n=N;
m=(int)sqrt(N);//将平方数开方
if (m*m==n)//判断是否是平方数 { int f[10]={0};//取0-9的数作为位数,用数组作为表头 while (n>0) { j=n%10;//取个位数 for (i=0;i<=9;i++) { if (j==i) { f[i]++;//如果取的个位数与i相等,就在数组对应的表头那里都加一 if (f[i]>1)//题目上说至少两个相等的数,则大于一就ok { return 1;//返回1 } } } n/=10;//取下一位数 } return 0;//返回0 } return 0;
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 500 | cnt=6 | 样例 |
100 1000 | cnt=9 | 说明,正确 |
400 800 | cnt=4 | 说明,正确 |
1.1.4 PTA提交列表及说明
- 编译错误:开根号那里把int写在了m前面,但应该sqrt前面()加上。
部分正确:最后判断的时候用break,但题目要求要返回1.
1.2 题目2
6-2 统计各位数字之和是5的数
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。
函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式
1.2.1 数据处理
整型变量:int is(int n)
{
int a=0,b=0;
while (n!=0)
{
b = n % 10;//提出个位数 n /= 10;//取下一位数 a += b;//整和 } if (a == 5)//判断整和数是否等于5 return 1; else return 0;
}
void count_sum(int a, int b)
{
int sum = 0, count = 0, i;
for (i = a; i <= b; i++) { if (is(i))//以is函数的if为条件来进行判断 { count++;//计数满足的个数 sum += i;//整数的和 } } printf("count = %d, sum = %d", count, sum);
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | 104 is counted.count = 15, sum = 3720 | 样例 |
100 999 | count = 15, sum = 3720 | 说明,正确 |
16 400 | count = 16, sum = 2555 | 说明,正确 |
1.2.4 PTA提交列表及说明
- 编译错误:if判断五的那里的return没打;,
- 格式错误;有些大扩号没打好。
2.代码互评
上图为同学的,下图为我自己的
- 上图:1.没看懂第二个for中的m/=10是什么意思2.可以说非常详细,一步一步来的3.还判断了奇偶性。
下图:1.直接就判定2.在条件中提数3.比上图简洁很多。
3.1 学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 |
---|---|---|---|
10/7-10/10 | 9+ | 30行+ | scanf()语句,if-else语句,平方,根号 |
10.16/10.17 | 5个小时 | 141 | 如何运用for语句 |
10.23/10.26 | 5个小时 | 141 | 如何定义函数,运用while语句 |
10.30/11.2 | 8小时 | 200+ | 如何在if else和for中嵌套 |
11.6/11.7 | 5小时 | 100+ | 如何灵活的运用switch语句 |
11.13/11.14 | 5小时 | 80+ | n=getchar();和switch加return 0 |
11.20/11.21 | 5小时 | 92 | 数组怎么用 |
11.27/11.28 | 5小时+ | 89 | 这次的第一题 |
12.4/12.5 | 5小时+ | 58 | 这次的编程题(太难了) |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
这周新学习了两种函数,讲道理到现在我也没搞清楚,只知道那个静态变量的值不会改变,而局部变量会在被返回
的时刻就会删除了。3.3.2 思维导图
3.3.3 学习体会
- 这周复习线代和高数,而且也学了新东西,但是嘞讲道理,这周的题目有点难,我们亲爱的助教他都还没写完,我一看那两
个编程题,我人就傻了,还要复习其他科目,难啊!