这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/10126 |
我在这个课程的目标是 | 熟悉并熟练编程,争取独自设计一个小程序 |
这个作业在哪个地方具体方面帮助我实现目标 | 掌握各种函数的意义和定义函数,能够知道函数用途 |
参考文献 | C语言课本,百度 |
1.PTA实验作业
1.1题目名
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
1.1.1数据处理
数据表达:定义整型变量m、n、i、div,运用了if语句,while和for循环
数据处理:
伪代码:
int IsTheNumber ( const int N )
{
int n = N;
int m;
int div = 10;
int i;
i = (int)sqrt(N);//令i等于N的根方并取整
m = i * i;
if (m == N)
{
int tmp[10]={0};//清零
while (n > 0)
{
for (int k = 0; k < div; k++)
{
if (n % 10 == k)//赋值给k
{
tmp[k] += 1;//计算有多少个这样的整数
if (tmp[k] == 2)
{
return 1;
}
}
}
n = n / div;//计算n
}//循环计算
return 0;
}
return 0;
}
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
100,500 | n=7 | 有7个数满足条件 |
100,150 | n=3 | 有3个数满足条件 |
500,1000 | n=2 | 有2个数满足条件 |
1.1.4PTA提交列表及说明
说明:这一题在dev-c++上面试了很多次,错误总出在第七行和第十四行和十九行,未了解这个语句然后不知道这样写的原因,经过多次琢磨问大佬终于解决了这个问题。
1.2题目名
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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。
1.2.1数据处理
数据表达:定义变量digital,sum1,用到了do-while循环和else语句。
数据处理:int is(int number)
{
int digital;
int sum1=0;
do
{
digital=number%10;
sum1=sum1+digital;
number=number/10;
}//提取各位数
while(number!=0);
if (sum1==5)//判断是否为5
return 1;
else
{
return 0;
}
}
void count_sum(int a,int b)//计算另一种情况
{
int count=0;
int sum=0;
int t;
if(a>b)
{
t=a;
a=b;
b=t;
}//调换a,b的值
else
{
for(int i=a; i<b; i++)//进行循环,达到目的值
{
if(is(i))
{
count++;
sum=sum+i;
}
}
printf("count = %d, sum = %d",count,sum);//输出
}
}
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | 104 is counted. count = 15, sum = 3720 | 满足条件的整数有15个,整数和为3720 |
200 800 | count = 10, sum = 3110 | 满足条件的整数有10个,整数和为3110 |
300 888 | count = 6, sum = 2244 | 满足条件的整数有6个,整数和为2244 |
1.2.4PTA提交列表及说明
说明:多次错误是当时第十九行没想到,导致错误;然后就是字母过多,搞混了,造成错误。
2.代码互评
2.1同学代码
2.2自己代码
说明:我和这位同学的代码看起来差不多,但是这位同学的代码比我的代码看起来简洁多了,也更容易懂,以后我的代码也要越来越简洁,一看就懂的那种,稳步提升自己。
2.3同学代码
2.4自己代码
说明:代码差异不大,但是中间代码有一段不一样,我令a,b等于特定的值,然后运行下一步,而这位同学则是对其进行定义然后运行下一步。
3.学习总结
3.1学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
7/2019.10.11 | 14 | 280 | scanf,if else语句 | 对于scanf语句还不是特别了解 |
8/2019.10.17 | 16 | 320 | for的循环语句以及循环体 | 不太懂循环体的操作,以及对于for的循环语句也不是很熟悉 |
9/2019.10.25 | 20 | 430 | 使用自定义函数和调试代码 | 调试过程不太熟悉,调试操作不太熟练 |
10/2019.11.1 | 18 | 570 | 多分支结构和逻辑运算符 | 对逻辑运算符了解不是特别明白,对多分支结构不太熟悉 |
11/2019.11.8 | 18 | 700 | switch分支结构 | 对switch语句还不够熟练 |
12/2019.11.15 | 22 | 980 | 熟练掌握while和do-while语句 | 对do-while语句还不是特别了 |
13/2019.11.21 | 28 | 1258 | 了解了continue语句和break语句的大致区别,知道了嵌套循环 | 虽然知道了有continue语句和嵌套循环,但是不会把它运用到具体题目中去 |
14/2019.11.28 | 25 | 1576 | 对于之前学习的知识有了一点会齐的感觉,了解了一点 | 虽然大体上,大概了解了,然而还是不很熟练将其运用进实际问题 |
15/2019.12.5 | 26 | 1789 | 对函数有了深一点的了解,懂了函数的定义和使用,认识到了变量的作用域,生存周期和存储类型 | 对于函数的使用不太熟悉 |
3.2累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
请用思维导图的形式将到目前为止所学的内容进行整理
3.3.1学习体会
这次的题目好难,尤其是编程题,题目都看不懂,不知道从哪下手,没有一点头绪,觉得自己虽然上了这么久的课了,但其实懂的东西不太多,以后还要做的更多,掌握方法,逐渐熟悉起来,多锻炼自己的思维能力,增强读题能力,不至于以后再出现看不懂题目的状况。