这个作业属于那个课程 | c语言程序设计I | |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10131 | |
我在这个课程的目标是 | 熟练掌握c语言,学会怎样去做好表格,统计图,流程图等 | |
这个作业在哪个方面帮我具体实现目标 | 熟悉了函数的定义和使用,了解了变量与函数的关系 | |
参考文献 | 《c语言程序设计(第3版)》 |
1.PTA实验作业(20分/题)
请再此处列出自己的排名图片;
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分);
1.1统计某类完全平方数 (20分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N
是用户传入的参数。如果N
满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
#include
#include
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数据处理
介绍实现本题过程中,你的数据表达、数据处理是怎么做的。
数据表达:int r=sqrt(N),n=N,d,a[10]={0}。
数据处理:伪代码
int IsTheNumber ( const int N ){ //函数名
int r←sqrt(N),n←N,d,a[10]←{0}; //变量定义
if r的平方等于N
then whine(n)
do d←n%10;
a[d]←a[d]+a[1];
if a[d]等于2
then return 1;
n←n%10;
return 1;
1.1.2实验代码截图
1.1.3 造测试数据
输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明。
输入输出样例
随机取值
1.1.4 PTA提交列表及说明
提交列表说明:
部分正确:没有将数组赋予相同值0。
答案正确:修改后答案正确。
1.2统计各位数字之和是5的数 (20分)
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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
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数据处理
介绍实现本题过程中,你的数据表达、数据处理是怎么做的。
数据表达:int num1,sum=0;int a, b;int number;int count=0,sum2=0,i;
数据处理:伪代码
int is( int number ){//函数名
int num1,sum←0;//定义变量
do{
num1←number%10;
sum←sum+num1;
number←number/10;
}while(number不等于0)
if(sum等于5)
then return 1;
else
then return 0;
void count_sum( int a, int b ){ //函数名
int count←0,sum2←0,i;//定义变量
for(i等于a;i小于等于b;i累加1){
if(is(i)){
count←count+1;
sum2←sum2+i;
Output count,sum2
1.2.2实验代码截图
1.2.3 造测试数据
输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明
输入输出样例
随机取值
1.2.4 PTA提交列表及说明
提交列表说明:
多种错误:输出格式错误,输出时忘记空格。部分答案错误,循环语句错误。
答案正确:修改后答案正确
2.代码互评(5分)
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
统计某类完全平方数 (20分)
同学1代码截图
同学2代码截图
自己代码截图
1.第一位同学返回值的表达方式与我不同
2.第二位同学的代码行数相比更少,我的更精简
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点 | 目前比较迷惑的问题 |
---|---|---|---|---|
4/9-17 | 6 | 50 | 接触c语言,输出Hello World! | 无 |
5/9-24 | 20 | 200 | 如何向别人提出问题,顺序结构 | 在完成PTA过程时总是被警告:忽略使用属性声明的"scanf"返回值 |
7/10-8 | 24 | 350 | if-else判断结构,余数表示,逻辑"或"逻辑"与" | 同上 |
8/10-15 | 20 | 400 | for循环结构 | 无 |
9/10-22 | 23 | 415 | 函数定义,while循环与for循环的区别 | 无 |
10/10-29 | 20 | 390 | 多分支结构、字符型数据类型和逻辑运算符 | 无 |
11/11-4 | 24 | 400 | switch语句结构 | 无 |
12/11-11 | 20 | 450 | while和do-while结构 | 无 |
13/11-21 | 15 | 300 | break、continue,return的区别,学会了使用循环的嵌套解决问题 | |
14/11-26 | 20 | 400 | 复习了一下以前所学的内容 | 无 |
15/112-3 | 17 | 370 | 熟悉了函数的定义和使用,了解了变量与函数的关系 | 对外部变量和全局变量还不是很了解 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
这周的课程比较多,同时还要排练节目,导致学习时间大量减少。现在临近期末考试,觉得自己需要合理分配时间进行复习。不会的就去翻书,去百度搜索,而不是不管的扔在一边不去解决。