这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10127 |
我在这个课程的目标是 | 编写一个简单耐玩的小游戏 |
这个作业在那个具体方面帮助我实现目标 | 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
", cnt);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
105 500
输出样例:
cnt = 6
1.1.1数据处理
数据表达:在自定义函数中定义了n,w,e,这三个变量由于const定义的变量具有不可变性,所以用n来表示N,w和e则是普通的 整形变量
数据处理:
START int IsTheNumber(const int N) q=sqrt(N); if(q*q==n) { while(N<=0) w = n / 10; e = n% 10; while(N除10的余数余前面的数比较完结束) { if(尾数e与后面的数相同) return 1; else w/=10为下次比较做准备; } 若没有相同return 0; } else //不为平方数 return0; END
1.1.2实验代码截
1.1.3 造测试数据
输入数据 | 输出数据 |
100 500 | cnt = 7 |
500 1000 | cun = 0 |
1000 5000 | cnt = 19 |
1.1.4 PTA提交列表及说明
说明:
编译错误:我原先的代码是完全没有问题的,我事先在VS上运行没有任何错误,到PTA上就不行,后来看了一下错误点猜测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.
", a);
if (is(b)) printf("%d is counted.
", b);
count_sum(a, b);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
104 999
输出样例:
104 is counted.
count = 15, sum = 3720
1.2.1 数据处理
数据表达:在自定义函数is()中定义了两个整形变量,total,q,分别代表各位数之和和输入数的个数。在自定义函数count_sum()当中重复利用定义了一个整形变量I用来计算sum的值。
数据处理:
START int is(int n) { while(n<=0时输出) { 取n的余数q; total += q; n /= 10为下次循环做准备; } if(各个数字之和total==5) n = 1; else n = 0; } void count_sum(int a, int b) { i = a; for(i从a开始,b结束,每次自增) { if( i满足 i()函数) { count++; sum+=i; } } } END
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 |
500 1000 | 500 is counted. count = 1, sum = 500 |
1000 2000 | count = 15, sum = 17220 |
50 500 | 50 is counted. 500 is counted. count = 16, sum = 3770 |
1.2.4 PTA提交列表及说明
一次过
2.代码互评
同学代码:
我的代码:
区别: 1.这位同学的代码运用了数组来储存数据 2.这位同学的计算方法也不同
3.学习总结
3.1 学习进度条
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.老师一定高估了我们的实力,这周的编程题看到就当场爆炸了,关键是在解一元二次方程的的编写时,明明给的数据全部输出没问题,但就是有那么多测试点错误,果然我就一定是数学不好才这么菜;
2.幸福数,看完就爆炸,没有余地,所以总结就是,这么菜还作ACM的题,这不等于白给吗