C语言I博客作业11
| 问题 | 答案 |
|---|---|
| 这个作业属于那个课程 | C语言程序设计II |
| 这个作业要求在哪里 | 作业链接 |
| 我在这个课程的目标是 | 学会并掌握C语言基本知识,能够相关C语言的各种代码 |
| 这个作业在那个具体方面帮助我实现目标 | 学习函数相关知识 |
| 参考文献 | C语言程序设计(第3版)、百度、360浏览器 |
1.PTA实验作业(20分/题)

1.1 6-1 统计某类完全平方数 (20分)
题目内容描述:

1.1.1数据处理
数据表达:本题用了n,t,i,temp,flag这些变量,其中n值来自于N的值,t是通过n开平方得值,i是一个循环变量,定义初始值为0,temp的值来源于n除以10的余数,flag定义初始值为0,通过条件判断赋值为1,都是整型变量;
数据处理:
伪代码:
int IsTheNumber ( const int N )(函数名)
{
int n,t,i,temp,a[10]={0},flag=0
n←N;
t=(int)sqrt(n)t等于n的平方根 (整型)
if t的平方等于n
{
while(n不等于0)(直到n等于0跳出)
{
temp←n%10(n除以10的余数)
a[temp]++(累加)
n←n/10(n除以10)
}
for(i←0;i小于10;i++)
{
if(a[i]小于或等于2)
{
flag←1
返回值 1
}
}
if(flag等于0)
返回值 0
}
else
返回值 0
}
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 105 500 | cnt = 6 | 使用题目所给数据 |
| 10 100 | cnt = 1 | 使用较小数据 |
| 200 600 | cnt = 4 | 随机范围 |
| 10 1000000 | cnt = 780 | 较大范围 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:在if(t*t==n)中少写一个“=”;
solve:在原有的“=”后面再加上一个“=”;
2.编译错误:在循环条件for(i=0;i<10;i++)中写成i<=10;
solve:将i<=0中的“=”去掉;
3.答案正确:通过修正答案正确;
1.2 6-2 统计各位数字之和是5的数 (20分)
题目内容描述:

1.2.1 数据处理
数据表达:本题用了number、x、y、count、sum、i、a、b这些变量,其中y、count、sum定义初始值为0,x通过number除以10的余数来来给值,number通过之前自身的值来除以10的值来给值,y通过x加y的和来赋值,a、b通过scanf函数来赋值,然后在for循环中将a值赋给i,在通过循环内部相关语句count进行累加,sum循环加之前自身的值和i值之和,都是整型变量。
数据处理:
伪代码:
int is(int number)(函数名)
{
int x,y←0
do{
x等于number除以10的余数
number等于number除以10
y←x+y
}while(number不等于0)(直到number等于0)
if(y等于5)
返回值 1
else
返回值 0
}
void count_sum(int a, int b)(函数名)
{
int count←0,sum←0
int i
for(i←a;i<=b;i++)
{
if(is(i))
{
count++
sum等于sum加i
}
}
输出count和sum的值
}
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 104 999 | ![]() |
使用题目所给数据 |
| 10 100 | ![]() |
使用较小数据 |
| 100 1000000 | ![]() |
使用较大数据 |
| 1004 1000000 | ![]() |
使用a的各个数字之和为5的数据 |
| 1000 1000004 | ![]() |
使用b值各个数字之和为5的数据 |
| 203 2003 | ![]() |
使用a、b各个数字之和均为5的数据 |
1.2.4 PTA提交列表及说明

提交列表说明:
1.编译错误:while语句后面没有加“;”;
solve:在while(number!=0)后面加上“;”;
2.编译错误: count_sum中间没有加“_”;
solve:zai count和sum中间加上“_”;
3.答案正确:通过修正答案正确;
2.代码互评(5分)
同学代码截图


自己代码截图

不同之处:
1.第一位同学的代码的返回值和我表达不同;
2.第二位同学的代码比我简洁。
3.学习总结(15分)
3.1 学习进度条(5分)
| 周 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 第一周(9/17-9/22) | 5小时 | 43行 | 学会写最简单的代码 | 无 |
| 第二周(9/24-10/4) | 6小时 | 62行 | 学会温度转换 | 无 |
| 第三周(10/6-10/13) | 11小时 | 86行 | 学会写函数程序 | 不知道怎么在什么情况下调用scanf()函数 |
| 第四周(10/14-10/20) | 10小时 | 105行 | for循环语句和循环结构 | 不知道定义多少个变量 |
| 第五周(10/21-10/27) | 10.5小时 | 114行 | 学会怎样去定义一个函数和它的基本格式 | 对于函数题的编程不知道该怎么样去设计 |
| 第六周(10/28-11/3) | 12小时 | 135行 | 学会二分支结构和if-else语句 | 对于输入一个正整数,然后输入对应数量的数值的代码编写存在迷惑 |
| 第七周(11/4-11/10) | 13.5小时 | 173行 | 学会怎样用switch简化代码的复杂性 | 使用switch语句时怎么能够很好的与其他语句很好的衔接 |
| 第八周(11/11-11/17) | 10小时 | 157行 | 学会使用do-while语句和while语句 | while后面的循环结束执行条件该如何判定 |
| 第九周(11/18-11/24) | 9小时 | 125行 | 学会怎样去写一个关于嵌套循环的代码 | 怎么样区分一行输出几个和输出几行 |
| 第十周(11/25-12/1) | 11小时 | 167行 | 进一步温习嵌套循环的使用 | 对于怎么理清内循环和外循环的循环语句和条件 |
| 第十一周(12/2-12/8) | 12小时 | 152行 | 学习函数类型、作用存、储类型相关知识 | 不能很好的理清他们之间的关系 |
3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
本周主要学习了关于函数的相关知识,了解到函数的类型、作用域、存储类型,函数类型分为库函数和自定义函数,变量的作用域分为局部变量和全局变量,存储类型分为静态和动态。还提到自动变量只能在函数内或复合语句中定义.

3.3.2 学习体会
对于我个人感觉,这次的PTA作业的函数题和编程题挺难的,有个别题目连思路都没有,还有的题目有些的计算方法都还没没有弄明白,甚至都不会去怎么很好并且正确的表达题目所包含的意思。本周学习关于函数的知识有些我还是感觉还没有弄懂,因为这些知识有的具有互通性,还有牵扯到的内容也很多,但这并不是我学不好的理由,有困难就要善于去解决,不会做就多查查资料,但是我觉得我自己现在有点过分依赖百度,虽然有些不一定找的到,但是我还是会不停的去查找。感觉本周的事情很多,还有令自己非常郁闷的事,关系到我的期末考试,现在我只有尽量不去想那个事情,因为怀着不愉快的心情做事效率非常低下。加油吧,但愿每天都能有一颗愉悦的心情!







浙公网安备 33010602011771号