C语言I博客作业11
||
-|-|
这个作业属于那个课程|C语言程序设计II
这个作业要求在哪里|作业要求
我在这个课程的目标是|会使用c语言进行编程序
这个作业在那个具体方面帮助我实现目标|写PTA作业,帮助自己进行总结
参考文献|PTA
1.PTA实验作业
1.1统计某类完全平方数
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
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
1.1.1数据处理
数据表达:
主函数:
定义了整型变量n1,n2,i,cnt;其中n1,n2位输入的取值范围,i用于控制循环,cnt用于记录满足条件的数有多少。
自定义函数:
定义整型变量number, n, a ,定义数组num[9],number用于判断传入的数是不是完全平方数,n用于while循环算出完全平方数的各位数是多少,a用于计算完全平方数有几位,数组用于记录完全平方数的各位数。
数据处理:
主函数
定义了整型变量n1,n2,i,cnt;其中n1,n2位输入的取值范围,i用于控制循环,cnt用于记录满足条件的数有多少。
输入n1,n2
cnt = 0;
for (i = n1; i <= n2; i++)
if 调用函数IsTheNumber(i) then
cnt++;
end for
输出cnt
自定义函数IsTheNumber
定义整型变量number, n, a ,定义数组num[9],number用于判断传入的数是不是完全平方数,n用于while循环算出完全平方数的各位数是多少,a用于计算完全平方数有几位,数组用于记录完全平方数的各位数。N为给入的参数
把N赋值给n
number = 根号N
if number * number == N then
{
while (n)
{
num[a] = n除以10的余数
n自除10
a++
}
for (int i = 0; i < a; i++)
{
for (int j = i + 1; j < a; j++)
{
if num[i] == num[j] then
{
返回 1;
}
}
}
}
返回 0;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 500 | cnt = 6 | 105~400内有6个类完全平方数 |
1 100 | cnt = 1 | 1~100内有1个类完全平方数 |
100 500 | cnt = 7 | 100~500内有7个类完全平方数 |
1.1.4 PTA提交列表及说明
提交列表说明:
部分正确:少了个返回值,没有加return 0
,加上后就对了。
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
1.2.1数据处理
数据表达:
主函数:
定义整型变量a,b为输入的范围
自定义函数is:
定义整型变量n,sum,n用于while循环计算出给如参数number的各位数之和为sum。
自定义函数count_sum:
定义整型变量count,sum,count为满足条件的整数个数, sum为这些整数的和。
数据处理:
主函数
定义整型变量a,b为输入的范围
输入a,b
if 自定义函数is返回来的值不为0 then 输出a is counted
if 自定义函数is返回来的值不为0 then 输出b is counted
自定义函数 count_sum(a, b);
自定义函数is
定义整型变量n,sum,n用于while循环计算出给如参数number的各位数之和为sum。
把number赋值给n
while (n)
{
sum等于自身加上 n除以10的余数
n自除10
}
if sum=5 then 返回 1
返回 0
自定义函数count_sum
定义整型变量count,sum,count为满足条件的整数个数, sum为这些整数的和。
for (int i = a; i <= b; i++)
{
if 自定义函数is返回值为1 then
{
count++;
sum等于自身加i
}
}
输出count,sum
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | 104 is counted. count = 15, sum = 3720 |
104~999内有15个各位数字之和是5的数,且他们的和为3720 |
1 50 | 50 is counted. count = 6, sum = 165 |
1~50内有6个各位数字之和是5的数,且他们的和为165 |
997 1998 | count = 15, sum = 17220 | 997~1998内有15个各位数字之和是5的数,且他们的和为17220 |
1.2.4 PTA提交列表及说明
提交列表说明:
部分正确:函数count_sum计算范围内各位数之和是5的数的和的条件写错了,最后改了if的条件。
2.代码互评
同学代码截图
自己代码截图
1.他的代码明显写的要比我的巧妙好多,我是把各位数都存下来,他是直接用一个数字,计算相同的数出现了几次,如果出现2次就跳出。
2.大体思路都差不多,开根号,然后平方,看是不是完全平方数。
同学代码截图
自己代码截图
1.我跟他的is函数不一样,count_sum函数是一样的。
2.is函数我用的时while,他用的是do-while,我是用一个变量来存储计算的各位数,他是中间多了个中间变量。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周 | 10 | 50 | 学会了简单输出 | 无 |
第五周 | 20 | 100 | 学会了输入 | 无 |
第六周 | 10 | 150 | 学会了if-else | 无 |
第七周 | 5 | 80 | 学会了for | 无 |
第八周 | 30 | 300 | 学会了switch语句r | 对char的用法还不怎么会 |
第九周 | 20 | 335 | 简单的了解了函数的使用 | 自定义函数还不太会 |
第十周 | 20 | 343 | 学习了指针 | 还不知道指针具体的用处 |
第十一周 | 25 | 503 | 学习指针 | 感觉指针好难啊 |
第十二周 | 30 | 489 | 学习了结构体 | 指针还是不会 |
第十三周 | 30 | 265 | 学习了预处理 | 预处理的套用比较多,多层套用不会 |
第十四周 | 35 | 639 | 学习了python的基础 | 看着还是看不懂 |
第十五周 | 35 | 259 | 学习linux | 命令记不住 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 633 | 50 |
第五周 | 1565 | 150 |
第六周 | 1565 | 300 |
第七周 | 2227 | 380 |
第八周 | 3027 | 680 |
第九周 | 4111 | 1015 |
第十周 | 5322 | 1358 |
第十一周 | 6817 | 1861 |
第十二周 | 8617 | 2350 |
第十三周 | 10562 | 2615 |
第十四周 | 12387 | 3254 |
第十五周 | 14637 | 3513 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.之前的的代码很久没去看,突然打开看下,发现不知道写的是什么意思,这让我知道,在代码里写注释很重要,我需要养成好习惯,在每段代码比较重要的地方加个注释,这是个好习惯。以后工作写代码都是一起合作写,要是写的代码别人看不懂那就会有很多不必要的麻烦,别人都喜欢简单易懂且功能强大的代码。
2.这次pta作业比较难,一直没写出来,这写题目还只要if和for就行,都没涉及算法,但是就是写不出,我还得加强自身的学习,不能被题目给难到了。最近一直在学新的东西,没有去刷题,在写题目时找不到那种状态,我需要在学习新东西的时候也不放下之前学的东西。