这个作业属于哪个课程 | C语言程序设计Ⅰ |
---|---|
这个作业要求在哪里 | https://www.cnblogs.com/tongyingjun/p/11985045.html |
我在这个课程的目标是 | 熟练掌握函数的定义,函数的参数,局部变量和全局变量还有静态变量 |
这个作业在哪个具体方面帮助我实现目标 | PTA作业以及自己在编译器上面写的代码和代码错误,百度上面的文献 |
参考文献 | C语言程序设计,百度文献 |
1.PTA实验作业
统计某类完全平方数 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
⑴数据处理
数据表达:本题使用int整形结构,for循环,数组,break语句if-else语句。
数据处理:
int IsTheNumber ( const int N )
{
int i=0,j=0,k,n;
int H[10];\数组存取数字
for(k=0;k<10;k++)
{
H[k]=0;\判断是否为完全平方数
}
for(k=0;k<=N;k++)
{
if(k*k==N)
{
i=1;\判断出一位就保存一位
break;\如果就一位直接跳出循环
}
}
for(n=N,k=n%10;n!=0;k=n%10)\超过一位就开始这个循环
{
H[k]++;\位数增加1
n=n/10;
}
for(k=0;k<10;k++)\再次第三次循环
{
if(H[k]>1)
{
j=1;
break;
}
}
if(i==1&&j==1)\判断是否满足题目给的条件
{
return 1;
}
else
{
return 0;
}
}
⑵实验代码截图
⑶造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 500 | cnt = 6 | 六个完全平方数 |
22 33 | cnt = 0 | 没有完全平方数 |
100 100 | cnt = 1 | 一个完全平方数 |
⑷PTA提交列表及说明
错误原因:
①编译错误:判断的条件打错了,第一次循环语句的内容打错了,把k=0打成k=1了;
②编译错误:第三次循环开始不知道怎么去打,下面的if判断语句不知道打,开始打错了,问了一下同学,然后改了
统计各位数字之和是5的数 本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
⑴数据处理
数据表达:本题使用了int整形结构,while语句,for循环语句,if-else语句
数据处理:
int is (int n)
{
int s=0,t=0;
while(n!=0){\开始while语句的循环,n不等于0时开始循环
t=n%10;\t等于n除以10
n/=10;\n=n/10
s+=t;\s=s+t,s结果再加上t
}
if(s==5)\各数字是否是5
return 1;\是5就输出1
else
return 0;\如果不是5,输出0
}
void count sum(int a,int b)
{
int sum=0,count=0,i;
for(i=a;i<=b;i++){\ a,b的范围
if(is(i)){\使用函数is来统计区间有多少个符合的
count++;
sum+=i;
}
}
printf("count=%d,sum=%d
",count,sum);\count = 满足条件的整数个数, sum = 这些整数的和
}
⑵实验代码截图
⑶造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | 104 is counted. count = 15, sum = 3720 | 104符合,满足条件的整数个数有15个,这些整数的和为3720 |
100 888 | 100 is counted. count = 15, sum = 3720 | 100符合,满足条件的整数个数有15个,这些整数的和为3720 |
555 666 | count = 0, sum = 0 | 不符合,没有结果 |
⑷PTA提交列表及说明
错误原因:
①编译错误:最后的那个printf里面输出的双引号用成了中文的,is函数哪里也不知道怎么弄,直接弄错了
②答案错误:第567行的表达式弄错了,n=10打成s=10.
2.代码互评
⑴同学代码截图(软件三班王文志)
自己代码截图()
⑵比较结果
不同点:我们两个代码就变量定义不一样,678行代码的执行顺序不一样。
相同点:都使用了while语句,if-else语句,for循环语句。其他都差不多
同学代码截图(软件三班曾佳)
自己代码截图
比较结果
不同点:从代码行数来说我的比他的长,还有他的代码我有点看不懂,他的那个char我不知道,还有一个getchar我没有看见过,他还用了continue语句,我使用了数组,我最后一起判断是否输出1或2的
相同点:都是int整形结构,都所以了for循环语句,都使用了三个for语句
学习总结
⑴学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 三个小时 | 50 | 在电脑上面显示hello word | 刚刚接触迷惑的地方比较多 |
第二周 | 四个小时 | 70 | 在电脑上面安装程序 | 如何安装程序还是不怎么明白 |
第三周 | 一下午加两个小时 | 100 | C语言中常见的数据类型常量变量 | 那个scanf还是没有很清楚没有了解完全 |
第四周 | 四个小时 | 85 | 学到了for的循环 在百度上面初步了解了pow的用法 | pow的用法还有循环结构 |
第五周 | 四个半小时 | 103 | 学到了C语言中药学有关函数的,还学会了如何制作思维导图 | PTA作业中的用函数验证哥德巴赫猜想这个题目还不是很懂,还有主调函数和被调函数的类型也比较迷惑 |
第六周 | 六个小时 | 135 | 掌握多分支结构,字符型数据类型和逻辑运算符 | 逻辑运算符还是不是很清楚其用法,字符型数据类型也不是很懂 |
第七周 | 五个半小时 | 140 | 熟悉多分支结构switch语句的使用 | 还是不是很懂switch语句的用法 |
第八周 | 五个小时 | 151 | 使用while和do-while语句 | 什么时候应该用for语句,什么时候应该用while语句和do-while语句 |
第九周 | 六个小时 | 163 | continue语句的使用,if-else语句的嵌套 | if-else语句的嵌套 |
第十周 | 六个小时 | 198 | 复习以前的知识点 | |
第十一周 | 五个半小时 | 220 | 函数的定义,函数的参数,局部变量和全局变量还有静态变量 | 函数还是不是特别懂,参数分不清 |
⑵累计代码行和博客字数
⑶学习内容总结和感悟
①这一节课学习了函数的用法,很多都是理论知识,需要理解和记忆
②这一节课的内容相对来说没有那么难,这次的容易理解。
③每一节课多多少少都会有一点点弄懂的地方,把不知道的地方自己再去慢慢查,慢慢的弄懂。
学习内容总结
⑷学习体会
①不知不觉大一上半期就要过了,接触C语言也有很长时间了,感觉C语言是真的难。每次都为PTA作业烦恼
②马上就要期末考试了,非常害怕笔试,运气好抽到容易的还好,要是难的那我就完了。
③幸好还有几周的时间来准备考试,希望我不会挂科吧,加油加油。
④这么快就结束了一学期的C语言课程,感觉还是什么都没有学到,自己放假回去还要去学习,不然以后的生活就完了。