一、本周作业头
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | http://edu.cnblogs.com/campus/zswxy/SE2019-4/homework/10125 |
我在这个课程的目标是 | <学习c语言知识,学会做编程题,学会做小程序> |
这个作业在那个具体方面帮助我实现目标 | <学会使用while语句> |
参考文献 | <c语言程序设计教科书和实验书,浏览器,上课笔记,PTA> |
二、本周作业
1.PTA实验作业(20分/题)
1.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;
}
/* 你的代码将被嵌在这里 */
1.1.1数据处理
数据表达:在题目中,我定义了5个变量,分别是i,a[100],b,count=0,j;
数据处理:使用了if语句,for语句,while语句循环,
伪代码;
int IsTheNumber(const int N)
{
int i, a[100],b, count = 0,j;//定义变量
i = N;//给i赋值
b = sqrt(i);//给b赋值
if (b*b==i)//使用if语句
{
while (i > 0)//使用while语句循环
{
a[count] = i % 10;//取余
i = i / 10;//除以10
for (j = 0; j < count; j++)//for语句循环
{
if (a[count] == a[j])//嵌套
return 1;
}
count++;//累加
}
}
return 0;//返回
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
141 151 | cnt=0 | 141到151之间有0个满足题意的完全平方数 |
313 | 515 | cnt=3 |
144 | 600 | cnt=5 |
105 | 500 | cnt=6 |
1.1.4 PTA提交列表及说明
提交列表说明:
答案错误,将j<count写成了j>count
1.2 题目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。
裁判测试程序样例:
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;
}
/* 你的代码将被嵌在这里 */
1.2.1 数据处理
数据表达:定义了a,b,num1,sum,count,sum2,i
数据处理:函数int is(int number)使用了do-while循环结构和if语句;函数void count_sum( int a, int b )使用了for循环语句和if语句的嵌套结构。
伪代码:
#include <stdio.h>
int is( int number );
void count_sum( int a, int b );
int main()
{
int a, b;//定义a,b两个整型变量,
scanf("%d %d", &a, &b);输出a,b
if (is(a)) printf("%d is counted.
", a);//若满足is函数则相应的输出数据
if (is(b)) printf("%d is counted.
", b);//若满足is函数则相应的输出数据
count_sum(a, b);
return 0;
}
int is( int number )//自定义int is( int number )函数;
{
int num1,sum;定义num1和sum分别代表输入的数的每一位数字和每一位数字的和
sum=0;
do{ //do-while语句
num1=number%10;
sum=sum+num1;
number=number/10;
}while(number!=0);
if(sum==5) //if语句
return 1;
else
return 0;
}
void count_sum( int a, int b )//函数void count_sum( int a, int b )
{
int count,sum2,i;
count=0;
sum2=0;
for(i=a;i<=b;i++){//使用了for循环语句
if(is(i)){//if语句的嵌套结构
count++;
sum2=sum2+i;
}
}
printf("count = %d, sum = %d",count,sum2);//输出
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据|输出数据
1.2.4 PTA提交列表及说明
提交列表说明:
编译错误,while(number!=0)忘记加分号了
2.代码互评(5分)
同学代码截图
(1)
(2)
自己代码截图
与(1)比较:
1:同学的代码比较长,比较复杂,我的比较简洁,
2:运用的语句个数不同,设的变量个数不同
与(2)比较:
1.同学在循环语句中使用了break
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周9.16-9.23 | 6小时 | 28 | 初步了解敲代码,做博客 | 怎样进去做这些作业 |
第六周9.23-10.6 | 32小时 | 19 | 熟悉部分编程的格式,使用markdown语法 和做表格 | 不太会做表格 |
第七周10.7-10.11 | 40小时 | 105 | 学会使用if-else语句做分支结构题 | 做折线图开始的时候有点不太会 |
第八周10/14-10/19 | 48小时 | 82 | 学习了for语句,运用于敲代码时,进行循环过程。 | 有时候忘记赋值,循环体处掌握的方法还不够,容易运行错误。 |
第九周10/20-10/26 | 50小时 | 108 | 学习了c语言函数知识,理解定义和使用方法 | 不太懂,经常出错,函数式子很难想到 |
第十周10/28-11/02 | 38小时 | 180 | 学习了字符型,库函数,还有逻辑运算符知识 | 对这些我还挺感兴趣的 |
第十一周11./3-11/8 | 30小时 | 156 | 学习了switch语句 | 刚开始不太了解,慢慢了解了 |
第十二周11/9-11/15 | 35小时 | 112 | 学习了while语句,一种已知一个条件限制,求解满足条件的任意值 | 开始的时候,与for循环语句有点分不清楚,现在明白了 |
第十三11/16-11/22 | 41小时 | 126 | 学习了continue语句和复习了break等知识 | 暂无 |
第十四周11/23-11/29 | 38小时 | 181 | 复习了所学习的知识 | 有,还要多多练习,仔细思考 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会。
1.复习知识首先要理清楚思路,做笔记也要分点清楚,会更有效
有自己的时间表,合理安排,学习为主,其他为辅,为学习腾出时间。
2;我们在做PTA作业时候,每个小小点地方都需要注意,比如一个分号 空格,可以自己在草稿纸上打好草稿,和表出注意的地方,再敲上去,要多检查几遍。
3;随着知识的增加,我们了解的越来越多,更要注重吸收消化,越来越接近考试了,即使我再忙,也不能不学习了,特别是自己的专业知识,多去练习,理解题目,看看视频之类的,敢于动手写代码,因为我们的考试可能是笔试,...
4:有空就学习,尽量有空
5;实验课,做作业,是很好的锻炼我打字速度和反应能力的时候,时间方面比较紧,我需合理安排
7.要考试了,加油