这个作业属于哪个课程 | C语言程序设计 |
---|---|
这个作业要求在哪里 | C语言I作业10:第十五周作业 |
我在这个课程的目标是 | 学会使用C语言 |
这个作业在哪个具体方面帮助我实现目标 | 学会使用自定义函数,并消化老师上课讲的作用域和生存期以及存储类型 |
参考文献 | C语言程序设计(第三版);百度 |
1.PTA实验作业
1.1 统计某类完全平方数
本题要求实现一个函数,判断任一给定整数N
是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
裁判测试程序样例:
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数据处理
数据表达:在函数int IsTheNumber ( const int N )内,定义了三个整型变量,x代表完全平方数开根号所得的数;m代表完全平方数;i代表控制循环变量数。
数据结构:
结构式:用了if语句和for以及while循环的嵌套结构,还使用了数组方便输出结果。
伪代码:
开始 ;
定义四个整型变量,n1和n2:完全平方数的范围,i:for循环内的控制循环变量,cnt:[n1,n2]范围内的完全平方数的数量;
输入:n1,n2;
令cut=0;
for循环判断n1到n2内的数是否为完全平方数;
自定义函数:IsTheNumber
定义三个整型变量x、m、i,令m=x*x;
若m==N
则用数组num[10]={0}
外循环while:当m大于零时执行内循环
for循环输入i=1-9,判断m%10是否等于i
若yes→num[i]=num[i]+1;
继续判断若num[i]==2
则返回1;
退出内循环
m=m/10;
结束 ;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 500 | cnt = 6 | 105到500之间有6个满足题意的完全平方数 |
500 1000 | cut=2 | 500到1000之间有2个满足题意的完全平方数 |
100 150 | cut=3 | 100到150之间有3个满足题意的完全平方数 |
1.1.4 PTA提交列表及说明
提交列表说明:
答案错误:没有看懂题目,测试点都没有通过。
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数据处理
数据表达:在int is(int number)函数内,定义了两个整型变量t和s
数据结构:
结构式:
伪代码:
开始 ;
结束 ;
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 |
---|---|
1.2.4 PTA提交列表及说明
提交列表说明:
1.3
输入格式:
输出格式:
1.3.1数据处理
数据表达:
数据结构:
伪代码:
开始;
结束;
1.3.2实验代码截图
1.1.4 PTA提交列表及说明
提交列表说明:
2.代码互评
同学代码截图
自己代码截图
代码比较
同学代码截图
自己代码截图
代码比较
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 博客字数 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|---|
8周/10/14-20 | 5h | 100行 | 918字 | for循环结构 | 不能够熟练for语句 |
9周/10/20-27 | 7h | 120行 | 1194字 | 自定义函数 | 对定义和调用函数知识点上还是很模糊 |
10周/10/28-3 | 8h | 380行 | 1290字 | char字符型 | 有些代码所用的格式 |
11周/11/4-10 | 8h | 150行 | 1309字 | switch语句 | 怎么寻找到解题的正确思路 |
12周/11/11-17 | 6h | 160行 | 1100字 | do-while语句和其他循环语句 | 怎么综合运用已学内容 |
13周/11/18-24 | 16h | 260行 | 2453字 | break、continue的用法以及它们之间的关系 | 使用很多个for循环和if语句时容易混乱 |
14周/11/25-01 | 8h | 240行 | 1831字 | 用for循环解题的思路 | 不会用自定义函数 |