C语言|博客作业11
问题 | 答案 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10132 |
我在这个课程的目标是 | 感觉C语言还是落下了很多,希望可以把之前落下的给补上一点 |
这个作业在那个具体方面帮助我实现目标 | PTA使我巩固我的知识点 |
参考文献 | 百度、《C Primer Plus》第六版,C语言程序设计 |
1.PTA实验作业
1.1 本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.1.1数据处理
数据表达:第一个函数定义了两个整型变量:num1,sum,并且给sum赋值为0;第二个函数定义了3个整型变量:count,sum2,i,并且给count、sum赋值为0
数据处理:
int is( int number )
定义num1和sum两个变量
sum=0;
用do-while循环{
num1=number%10;
sum=sum+num1;
number=number/10;
}终止条件是number等于0
然后用if-else语句判断{
if(sum==5)
return 1;
else
return 0;
}
void count_sum( int a, int b )
定义count、sum2、i三个变量
count=0;
sum=0;
用for循环语句,里面包含一个if语句
for(i=a;i<=b;i++){
if(is(i)){
count++;
sum2=sum2+i;
}
}
如果满足第一个函数就进行累加,否则就不执行
最后输出结果:printf("count = %d, sum = %d",count,sum2);
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | 104 is counted. count = 15, sum = 3720 | 例题上的数据 |
1000 1999 | count = 15, sum = 17220 | 随机输入的数据进行测试 |
1.1.4 PTA提交列表及说明
编译错误:第九行的 ; 落下了
编译错误:第二十行的 { 落下
1.2
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等
1.2.1 数据处理
数据表达:定义了i, a[100],b, count,j五个变量,其中a[100]是数组,都是整型变量,给count赋值为0,令i=N、b=sqrt(i)(开根号);
数据处理:int IsTheNumber(const int N)
定义i, a[100],b, count,j;
count=0;
i = N;
b = sqrt(i);
if (b*b==i)
while(i>0)
a[count]=i%10;
i=i/10;
for (j = 0; j < count; j++)
{
if (a[count] == a[j])
return 1;
}
这里开始判断是否是完全平方数,中间有判断是否有两个数字是一样的,就是用数组储存每次计算的结果,然后进行比较是否相等
count++;
然后返回程序
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 500 | cnt = 6 | 例题上的数据 |
501 666 | cnt = 0 | 随机输入的数据进行测试 |
1.2.4 PTA提交列表及说明
2.代码互评
同学代码截图
自己代码截图
代码差异:1.变量命名不同,该同学的代码比较杂乱,不是那么的规范。
2.在判定数组中的值是否为2时,同学(1)用了for语句去判定,但我用的if-else来判断。
3.学习总结
3.1 学习进度条
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
周数/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较疑惑的问题 |
---|---|---|---|---|
第一周(9.19-9.27) | 约10h | 55行 | Hello world编程,markdown语句 | 无。 |
第二周(9.25-10.4) | 约20h | 70行 | 华氏度与摄氏度的转换 | 变量类型分不清。 |
第三周(10.8-10.11) | 约25h | 90行 | 计算分段函数和学习if-else语句 | if-else语句格式有点不熟悉。 |
第四周(10.15-10.17) | 40h | 100行 | for循环语句和指定次数的循环程序设计 | 指定循环次数的程序设计不懂。 |
第五周(10.22-10.25) | 40h | 90行 | 使用自定义函数来编程和生成乘方表和阶乘表 | 编程细节不懂。 |
第六周(10.28-11.2) | 35h | 80行 | 关系符和逻辑符号 | 不清楚优先级。 |
第七周(11.3-11.8) | 25h | 50行 | switch语句 | switch语句还是有些不明白,for循环也有点。 |
第八周(11.9-11.15) | 25h | 60行 | while循环do while循环 | 明白他们的区别,但是格式还是有点问题。 |
第九周(11/19--11/21) | 16h | 100行 | 学习了for循环的嵌套以及了解break语句和continue语句的用法和区别 | 静态数组和动态数组的区别。 |
第十周(11/26--11/28) | 17h | 150行左右 | 使用穷举法解决问题 | 当存在数据溢出情况时,数据的定义与取值范围选取。 |
第十一周(12/3--12/5) | 12h | 120行 | 函数的定义与调用,局部变量和全局变量的区别 | 实数的负零问题和误差问题。 |
3.3.1 学习内容总结。
3.3.2学习体会
这次上课有点吃力,不了解自定义函数,还有很多问题要不断改进与努力.写作业很困难很多不知道的东西,例如const int N,,搜索过后知道了const 定义的变量的值是不允许改变的,即不允许给它重新赋值,用 const 修饰的变量,无论是全局变量还是局部变量,生存周期都是程序运行的整个过程。还是要多多问同学以及老师。