问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | C语言I博客作业05 |
我在这个课程的目标是 | 对函数的定义和调用有初步的认识,能模仿编程. |
这个作业在那个具体方面帮助我实现目标 | 如何正确的自定义函数,以及参数的了解 |
参考文献 | 《C语言程序设计》《C Primer Plus》 |
1.PTA实验作业
1.1判断一个整数的各位数字平方之和能否被5整除
编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
函数接口定义:
int fun(int n );
其中 n 是用户传入的参数。 函数判断n的各位数字平方之和能否被5整除,能被5整除则返回1,否则返回0。
裁判测试程序样例:
include <stdio.h>
int fun( int n );
int main()
{
int m;
scanf("%d", &m);
printf("The result is %d\n", fun(m));
return 0;
}
/* 你的程序将被嵌入在这里 */
输入样例:
12
输出样例:
The result is 1
输入样例:
123
输出样例:
The result is 0
1.1.1数据处理
数据表达:用int定义变量s代表题中n的各位数字平方之和;类型为整型
数据处理:数据用到算术表达式,赋值表达式,关系表达式和while循环结构。
函数参数:主调函数int main(),被调函数int fun(),整型。 函数定义处的 n 是形参,函数调用处的 s 是实参,类型都为整型。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出结果 | 说明 |
---|---|---|
20 | The result is 0 | 各位数字平方之和不能被5整除 |
50 | The result is 1 | 各位数字平方之和能被5整除 |
55 | The result is 1 | 各位数字平方之和能被5整除 |
123 | The result is 0 | 各位数字平方之和不能被5整除 |
1.1.4 PTA提交列表及说明
1.编译错误:在两个(n%10) * (n%10)之间,中间的 * 我总是习惯性用数学的思维,总是下意识认为是(n%10)(n%10)。
2.编译错误:都学了这么久的编程了“;”还是有忘记输入的时候,无奈啊。加上;就通过了。
3.部分正确:我一开始写的是 s=(n%10) * (n%10),答案应该是 s=s+(n%10) * (n%10)。
4.答案正确。
1.2 水仙花数判断
本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=13+53+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.
函数接口定义:
int func(const int N);
其中N是用户传入的参数。N的值不超过int类型的范围。如果参数N是水仙花数,则返回1,否则返回0。
裁判测试程序样例:
include <stdio.h>
int func(const int N);
int main()
{
int N;
scanf("%d", &N);
printf("%d\n", func(N));
return 0;
}
输入样例:
153
输出样例:
1
1.2.1 数据处理
数据表达:用int定义变量a,b,c,sum,result. 类型为整型。
数据处理:关系表达式,算术表达式和条件结构。
参数:主调函数int main(),被调函数int func() 整型.形参 N ,实参 a, b, c,sum,result。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出结果 | 说明 |
---|---|---|
232 | 0 | 不是水仙花数 |
370 | 1 | 是水仙花数 |
566 | 0 | 不是水仙花数 |
1.2.4 PTA提交列表及说明
1.编译错误:在a的关系表达式中%没有输入
2.编译错误:应该sum==N,我误写成sum=N.
3.编译错误:一下打快了,又没注意看打成了aaa*+......
4.编译错误:没有int定义result
5.编译错误:直接用的if.....return 1; else....return 0;
6.部分正确:没有return result
7.答案正确
2.代码互评
同学代码截图
自己代码截图
1.同学代码中用到了逻辑运算符,关系运算符等多种数据结构。
2.同学的代码中在某些地方有注释,更方便他人读懂他的代码。
3.同学代码中还用到了while语句
4.代码的编写格式比自己的更加方便读懂,而且观看美观,不会让人觉得枯燥单调,有继续看下去的兴趣。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第三周10.9-10.12 | 两天 | 188 | 对代码数据的处理了解,比如类型结构等 | 什么时候用int,double声明变量,逻辑运算符的运用等 |
第四周10.16-10.18 | 一天半 | 190 | 如何用double型数据使用lf%,怎样在程序中用for语句实现循环,可指定循环次数 | 循环体中的关系表达式的正确运用 |
第五周10.23-10.26 | 两天 | 226 | 运算符的优先级顺序,自定义函数的编写,对数据参数的了解 | 具体如何在题目中定义函数,参数又应放在哪里才是正确位置 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
- 作业一如既往的需要大量时间慢慢细心的去完成,在摸索正确答案的过程中理解并吸收知识点,然后知道该如何运用.
- 其次是编程作业中的一些问题及策略 比如要把运算符的优先顺序排列清楚,要分清楚哪个先运算,哪个后运算;
在编程之前要考虑好程序的算法,写出流程图,这样才能更加快速的、有效的编程. - 平时真的要不间断的练习,在编程才不会犯一些低级错误,也能在编译器显示出错误时,迅速找到错误的点改正过来.