这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业11 |
我在这个课程的目标是 | 复习之前学过的语法知识,并学会运用 |
这个作业在那个具体方面帮助我实现目标 | 归纳,总结自己的解题错误,进一步了解自己的学习情况 |
参考文献 | 百度 |
1.PTA实验作业
1.1统计某类完全平方数
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
函数接口定义:
int IsTheNumber ( const int N ); 其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
#include <stdio.h> #include <math.h> 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
数据表达
定义整形变量m,n,j,i
m作为判断任意整数N的开方;
把N赋值给n;
用i,j用于for循环;
数据处理(伪代码)
int IsTheNumber(const int N) { 定义变量 m,n,i,j; n=N; m=(int)sqrt(N);//将平方数开方 if (m*m==n)//判断是否是平方数 { int f[10]={0};//取0-9的数作为位数,用数组作为表头 while (n>0) { j=n%10;//取个位数 for循环; { f[i]++;//如果取的个位数与i相等,就在数组对应的表头那里都加一 if (f[i]>1)//题目上说至少两个相等的数,所以要大于1 { return 1;//返回1 n/=10;//取下一位数 } 返回0; 结束; }
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 | 500 | cnt=6 |
130 | 190 | cnt=1 |
99 | 199 | cnt=3 |
1.1.4 PTA提交列表及说明
*编译错误:
1.sqrt打成了sprt导致编译出错;
2.sqrt前面的int没有括号;
1.2 统计各位数字之和是5的数
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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 <stdio.h> 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
数据表达:
定义了s,t,n,sum,count;
s用来判断给定正整数的各位数字之和是否等于5;
count用来记录满足条件的整数个数
sum用来记录这些整数的和
数据处理:
整型变量:int is(int n)
int a=0,b=0; while (n!=0) b = n % 10;提出个位数 n /= 10;取下一位数 a += b;整和 if (a == 5)判断整和数是否等于5 void count_sum(int a, int b) 定义变量sum = 0, count = 0, i; for循环; if (is(i))//以is函数的if为条件来进行判断 count++;//计数满足的个数 sum += i;//整数的和 结束;
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | 104 is counted.count = 15, sum = 3720 | 样例 |
5 | 555 | 5 is counted.count = 21, sum = 3885 |
99 | 999 | count = 15, sum = 3720 |
1.2.4 PTA提交列表及说明
*编译错误:
1.最后结尾的时候打了个return 0;
2.void count_sum下划线打错了;
2.代码互评
同学的代码:
我的代码:
1.该同学使用了do-while语句
2.该同学使用了if(a>b)进行判断,我没有进行他的这一步
3.他的代码从定义上和我较大的差异,我感觉我的代码更加清晰简洁。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的地方 |
---|---|---|---|---|
第六周 | 18h | 120 | 如何用 MinGW-w64 来编译C程序 | |
第七周 | 20h | 160 | 学习了if-else语句 | 运用的还不是特别熟练 |
第八周 | 22h | 180 | 掌握使用for循环语句实现指定次数的循环程序设计 | |
第九周 | 20h | 200 | 学会使用自定义函数 | 不是很了解自定义函数 |
第十周 | 22h | 210 | 学习多分支结构、字符型数据类型和逻辑运算符 | 对于字符型数据类型不怎么明白 |
第十一周 | 20h | 150 | 学习使用switch语句的运用 | 还不是很能很熟悉的运用 |
第十二周 | 24h | 220 | 学习使用while语句 | do-while还不是很熟悉 |
第十三周 | 29h | 300 | 学习使用continue语句和嵌套循环 | 对于一些较难的题目还是不能理解并运用 |
第十四周 | 33h | 320 | 复习之前学过的知识 | 基础知识不牢固 |
第十五周 | 36h | 360 | 学习使用函数和自学数组 | 对数组还是不清楚 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行 |
---|---|---|
第六周 | 1003 | 120 |
第七周 | 1260 | 145 |
第八周 | 1461 | 169 |
第九周 | 1812 | 210 |
第十周 | 2013 | 235 |
第十一周 | 2161 | 246 |
第十二周 | 2300 | 260 |
第十三周 | 2600 | 300 |
第十四周 | 2641 | 320 |
第十五周 | 2900 | 360 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
期末了,也差不多都要结课了,但是感觉学习到的知识并不多,而且思路也不清晰,也不知道怎么回事,还有马上就要考试了,先把基础复习好吧
只有基础知识扎实了,才能往下面走。