| 问题 | 答案 |
|---|---|
| 这个作业属于那个课程 | C语言程序设计II |
| 这个作业要求在哪里 | C语言I作业11 |
| 我在这个课程的目标是 | 学会C语言 |
| 这个作业在那个具体方面帮助我实现目标 | 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。 |
| 参考文献 | c语言作业评价标准 |
一、PTA实验作业
1.1统计各位数字之和是5的数
题目描述:本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.1.1数据处理
数据表达
| 变量 | 变量来源 | 变量类型 |
|---|---|---|
| a | 题目输入 | int |
| b | 题目输入 | int |
| s | 满足条件的数的和 | int |
| number | 一个数 | int |
| c | 各位数 | int |
| sum | 各位数的和 | int |
**数据处理:
is函数:定义变量
while(number不等于0) do
{
c<--number取10的余数;
sum<--sum+c;
number<--number/10;
}end
if(sum等于5)
返回1;
else
返回0;
end if;
count_sum函数:定义变量
for(;a<=b;a<--a+1)
{
if(对a调用is函数)
{
s<--s+a;
count<--count+1;
}end if
}
输出结果
1.1.2 实验代码截图
1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 1 | A | 最小t |
| 6 | A B C D E F G H I J K L M N O P Q R S T U |
最大t |
| 4 | A B C D E F G H I J |
样例 |
1.1.4PTA提交列表及说明
题目比较简单,一次就过了。
1.2梅森数
题目描述:形如2^n−1的素数称为梅森数(Mersenne Number)。例如2^2−1=3、2^3
−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2^31−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。
本题要求编写程序,对任一正整数n(n<20),输出所有不超过2^n −1的梅森数。
1.2.1数据处理
数据表达
| 变量 | 变量来源 | 变量类型 |
|---|---|---|
| n | 题目输入 | int |
| j | 使语句循环 | int |
| i | 使语句循环 | int |
| a | 2^n-1 | int |
| flag | 判断是否有梅森数 | int |
数据处理:
1.2.2 实验代码截图
for(i<--2;i<=n;i<--i+1)
{
a<-(2^i)-1;
for(j<--3;j<=a/2;j<--j+2)
{
if(a除以j的余数为0)
{
跳出此次循环;
}
end if;
}
if(j>a/2)
{
输出结果;
flag<--1;
}
end if
}
if(flag等于0)
输出结果;
end if;
1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 1 | None | 最小n |
| 6 | 3 7 31 |
样例 |
1.2.4 PTA提交列表及说明
二、代码互评
| 我的 | 同学一 | 同学二 |
|---|
与同学一相比(1)他多定义了两个变量,但是其实部分变量不用定义,可以用其它变量合理表示
(2)他的算法有些复杂,没有我的简洁。
与同学二相比(1)他多定义了“c”这个变量
(2)他的算法简洁,而我的显得有些复杂。
3.1 学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 | |
|---|---|---|---|---|---|
| 第一周(9.19-9.27) | 2小时 | 10 | 代码的基本输出 | 什么时候该空格 | |
| 第二周(9.27-10.4) | 24小时 | 30 | 华氏温度转换和GCC编译器编译文件 | 如何进行输入 | |
| 第三周(10.4-10.11) | 24小时 | 100 | 关系运算、if-else语句、格式化输入语句scanf(),以及常用的数学库函数 | 对一些数学符不熟 | |
| 第四周(10.11-10.18) | 20小时 | 120 | 使用for循环语句实现指定次数的循环 | 不能快速找出错误 | |
| 第五周(10.18-10.25) | 16小时 | 130 | 编写函数 | 调试有点不熟悉 | |
| 第六周(10.25—11.1) | 30小时 | 500 | 多分支结构、字符型数据类型和逻辑运算符 | 表达式的定义,上面的表达式好像是算术表达式,好像其它类型的表达式,认识得不清楚 | |
| 第七周(11.1—11.8) | 35小时 | 700 | 多分支结构switch语句 | 数组的使用 | |
| 第八周(11.9—11.16) | 32小时 | 400 | 熟悉使用while和do-while结构 | 字符串的使用 | |
| 第九周(11.16—11.22) | 26小时 | 300 | 熟悉break、continue的使用 | 指针的使用 | |
| 第十周(11.22—11.29) | 30小时 | 600 | 循环结构的程序设计,涉及到多个典型算法 | 指针的概念 | |
| 第十一周(11.29—12.5) | 6小时 | 200 | 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型 | 无 |