第二次作业
博客园的作业要求链接
https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_3/homework/2503
PTA作业
函数6-4 判断奇偶性
1.代码
int even( int n ) { int flag; if ( n % 2 == 0 ) { flag = 1; } else { flag = 0; } return flag; }
2 解题思路(10经验值)
(1)主要描述题目算法(3经验值)。
第一步:输入数值n。
第二步:判断奇偶性。
第三步:当n
为偶数时,函数返回1;n
为奇数时返回0。
(2)流程图(7经验值)
3.本题调试过程碰到问题及解决办法(3经验值)
遇到的问题 “=”是赋值,“==”是判断。
7-3 最高分、最低分、平均分
1.代码
#include<stdio.h> int main() { int i; int a[6],max,min,avg,sum; for(i=0;i<=5;i++) { scanf("%d",&a[i]); } max=min=sum=a[0]; for(i=1;i<=5;i++) { if(min>a[i]) { min=a[i]; } if(max<a[i]) { max=a[i]; } sum=sum+a[i]; } avg=sum/6; printf("max:%d\n",max); printf("min:%d\n",min); printf("avg:%d\n",avg); return 0; }
2 解题思路(10经验值)
(1)主要描述题目算法(3经验值)。
第一步:输入i,max,min,avg,sum。
第二步:使max=min=sum=a[0]。
第三步:判断min 与 a[i]的大小。
第四步:判断max与 a[i]的大小。
第五步:计算sum和avg的数值。
第六步:输出max,min,avg。
(2)流程图(7经验值)
3.本题调试过程碰到问题及解决办法(3经验值)
7-1 简化的插入排序
1.代码
#include<stdio.h> main() { int n,i,j,x,a[9]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&x); i=0; while(a[i]<x&&i<n) i++; for(j=n-1;j>=i;j--) { a[j+1]=a[j]; } a[i]=x; for(i=0;i<n+1;i++) printf("%d ",a[i]); }
2 解题思路(10经验值)
(1)主要描述题目算法(3经验值)。
第一步:输入n,a[i]的数值。
第二步:从小到大排序。
第三步:输入x。
第四步:从小到大排序。
第五步:输出顺序。
(2)流程图(7经验值)
3.本题调试过程碰到问题及解决办法(3经验值)
忽略题中要求每个数字后面有一个空格。导致虽然编译过程对,但是结果却不对。
要求三(共10经验值)
个人总结
(1)总结这几周你学习哪些内容(不限于课上)?你有哪些收获?(5经验值)
这几周学习了函数与数组,从中学到如下:
(1)int是数组的类型,array是数组的名称。
(2)数组下标丛零开始,即0~[数组长度-1]
(3)冒泡排序法:不断的比较数组中相邻的两个元素,较小的向上浮,较大的往下沉,从而达到排序的目的。
(4)二维数组是按行进行存放的,先存放a[0]行,再存放a[1]行,a[2]行。
内循环确定列。
外循环确定行。
(5)int a[3] [4];定义a为第3行第4列的二维数组。
(6)闰年被4整除但不被100整除或者被400整除。
(7)行列互换 temp=a[i][j];
a[i][j]=a[j]i] ;
a[j][i]=temp;
(2)总结这几周所学内容中你觉得哪些地方是难点?对此你做了哪些措施去克服这些困难?(5经验值)
难点:1.金字塔问题中的空格位置弄不懂。
2.冒泡排序不太会,里面的循环一直不明白含义。
措施:查找课本,查百度,问学长,问同学。
要求四(共10经验值)
互评和学习进度
1、点评3个同学的作业(5经验值)。
点评王文琪同学的博客:王文琪同学思路清晰,整体布局大气,知识点总结部分很细致,上课肯定认真听讲了,这一点我也要向她学习,希望你能继续保持,变得更加优秀。
点评谢雨欣同学的博客:流程图画得很好,但是最好在一条线上,这样可以更加清晰明了,就像第三个图那样,希望你能变得更加优秀。
点评李 曼 同学的博客:李曼同学很细心,遇到问题敢于挑战,加油,你是最棒的!
2、表格
折线图
要求五
关于抄袭:严禁抄袭!抄袭倒扣此次作业所有分数!