C语言I博客作业11
| 这个作业属于那个课程 | C语言程序设计II |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10129 |
| 我在这个课程的目标是 | 学习并熟练C语言的语法以及其函数 |
| 这个作业在那个具体方面帮助我实现目标 | 让我更加了解C语言的使用 |
| 参考文献 | 《C语言程序设计》,https://www.cnblogs.com/linfangnan/p/11682033.html |
一.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数据处理
数据表达:定义了r,n,a,d这四个变量;数据类型是a为整型。
数据处理:使用了for循环语句以及if判断语句,构成了循环结构;也使用了分支结构,顺序结构。
定义 IsTheNumber ( const 定义 M)
{
定义 r=sqrt(M);
定义 n=M;
定义 a[10]={};
(如果r*r==M){
定义 d;
while(n){
d=n%10;
a[d]++;
如果(a[d]==2){
输出 1;
break;
}
n/=10;
}
}
输出 0;
}
1.1.2 实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
| 105 500 | cnt = 6 | 样例 |
1.1.4 PTA提交列表及说明

编译错误:在输入代码的时候,for循环语句后面的括号后面加了“;”符号。
解决措施:但是其实是不用加的,将这个符号去掉就好了。
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 数据处理
数据表达:使用了i,count,sum三个变量;i是整型。
数据处理:使用了for循环语句以及if判断语句,构成了循环结构以及使用了分支结构,顺序结构。
定义 is( 定义 number )
{
sum定义=0,n;
while(number!=0)
{
n=number除以得余数10;
sum=sum+n;
number=number/10;
}
如果(sum==5)
{
return 1;
}
else
{
输出 0;
}
}
void count_sum( int a, int b )
{
定义 i,count=0,sum=0;
循环(i=a;i<=b;i++)
{
如果(is(i))
{
count++;
sum=sum+i;
}
}
printf("count = %d, sum = %d\n",count,sum);
}
1.2.2 实验代码截图


1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
| 104 999 | 104 is counted.count = 15, sum = 3720 | 样例 |
1.2.4 PTA提交列表及说明

编译错误:在输入代码的时候, int i,count=0,sum=0这部分把count=1。
解决措施:改成1就行了。
二.代码互评
代码比较1:
| 同学1的代码 | 我的代码 |
![]() |
![]() |
代码分析1:
很明显 地就可以看出来我们两个的代码是多么的不同,第一,我们定义的字母不同;第二,我们使用的结构也不同。
代码比较2:
| 同学2的代码 | 我的代码 |
![]() |
![]() |
代码分析2:
我们之间的差距还是很多的,我们其实还是有所差异,第一,定义数目不同,但是他的显得略简便;第二,我们中途的思路还是有点差异,我的是直接除五判断,而他的却要使用定义字母来判断;但是我们大致思路是差不多的。
三.学习总结
3.1 学习进度条
| 日期 | 这周所花时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
| 第一周(9.19-9.27) | 5个小时 | 25 | 代码的基本运用 | 什么都不是很了解 |
| 第二周(9.27-10.4) | 7个小时 | 17 | Make down语法的基本用法 | 十分粗心,在很多地方出错误 |
| 第三周(10.4-10.11) | 6个小时 | 89 | 关系运算、if-else语句、格式化输入语句等了解 | 对一些语法还是不甚了解 |
| 第四周(10.11-10.18) | 9个小时 | 85 | for循环语句的了解与运用 | 调试和改错一脸懵逼 |
| 第五周(10.18-10.25) | 6个小时 | 107 | 自定义函数和while函数的初步了解 | while函数的使用 |
| 第六周(10.29-11.2) | 9个小时 | 129 | 各种运算符了解以及分支函数的运用 | 对分支函数类型有点混乱 |
| 第七周(11.5-11.7) | 5个小时 | 120 | 它能够让我学习到执行流程和参数列表 | 对这些流程有点困惑 |
| 第八周(11.12-11.14) | 6个小时 | 128 | 了解switch语句的用法和原理 | 对于函数运用有点不熟练 |
| 第九周(11.19-11.21) | 8个小时 | 89 | 了解了while和do while的用法和原理,break,continue的熟悉以及循环结构嵌套的使用,让我更加深刻的认识了他们 | 对于一些循环类型还不是很懂 |
| 第十周(11.26-11.30) | 9个小时 | 68 | 让我更加了解循环结构嵌套的使用 | 对有些流程有点困惑 |
| 第十一周(12.3-12.7) | 8个小时 | 34 | 让我更加了解C语言的使用 | 对一些东西有点不懂 |
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
本周的任务快要结束,我们的一个学期也要结束了,回顾这段时间,真的很有感触,既有很开心的地方,也有不开心的地方,到头来,学习到的东西也有了一些增长,希望自己继续努力,好好加油。





浙公网安备 33010602011771号