第二次作业
一·作业要求
https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_3/homework/2503
二·pta
1·函数中题目6-4判断奇偶性
int even( int n ) { if(n%2==0) return 1; else return 0; }
(2)解题思路
第一步:判别奇偶性
第二步:根据题目要求赋值输出
流程图:
(3)本题调试过程碰到问题及解决办法
本题并未碰到问题
2数组1中题目7-3最高分,最低分,平均分
(1)实验代码
#define N 6
int main()
{
int x[N],i,max,min,avg=0;
for(i = 0;i<N;i++)
{
scanf("%d",&x[i]);
}
max = min = x[0];
for(i = 0;i < N; i++)
{
if(max < x[i]) max = x[i];
if(min > x[i]) min = x[i];
avg = avg + x[i];
}
avg = avg / 6;
printf("max: %d\n",max);
printf("min: %d\n",min);
printf("avg: %d\n",avg);
return 0;
}
(2)解题思路
第一步:定义数组
第二步:输入数据
第三步:判断最高分,最低分
第四步:计算平均分
第五步:按要求输出结果
流程图:
(3)本题调试过程碰到问题及解决办法
最开始将平均分初始值定义为x[0],x[0]是第一个数组,致使平均分计算错误,后将平均分初始值改为0,解决了这个问题
3数组2中题目7-1简化的插入排序
(1)实验代码
#include<stdio.h> int main() { int n,x; scanf("%d",&n); int a[11],i; for(i=0;i<n;i++) { scanf("%d",&a[i]); } scanf("%d",&x); for(i=0;i<n;i++) { if(a[i]>x) { printf("%d ",x); break; } else{ printf("%d ",a[i]); } } if(i==n) { printf("%d ",x); } else{ for(;i<n;i++) { printf("%d ",a[i]); } } return 0; }
(2)解题思路
第一步:输入数组
第二步:输入数据
第三步:判断x与数组中数字大小,如果x<a[i],将整数x与a[i]进行交换,并跳出循环,如果x>a[i],则直接输出
第四步:加入缺少的最大N,插在尾的情况
第五步:输出a[i]
流程图:
(3)本题调试过程碰到问题及解决办法
没有考虑到N最大,插在尾的情况,后重新写了一个代码,加入了这个情况
三·个人总结
(1)总结这几周你学习哪些内容(不限于课上)?你有哪些收获?
这几周我们学习了函数和数组,在课下我复习了前几周所学的内容,我收获了很多
如:
函数:
1.函数的作用,如何确定函数功能。
2.怎样定义函数,如何调用函数。
3.什么是函数的参数,怎样确定函数的参数。
4.在函数调用时,参数是如何传递数据的。
5.变量与函数有什么关系,如何使用局部变量和全局变量。
数组:
1.什么是数组, 为什么要使用数组,如何定义数组。
2.如何引用数组元素。
3.什么是字符串。
4.如何实现字符串的存储和操作。
(2)总结这几周所学内容中你觉得哪些地方是难点?对此你做了哪些措施去克服这些困难?
在学习过程中,使用局域变量和全局变量我不太清楚,数组中的排序也是一直困扰我的知识点,后经过课后练习,询问同学和查找资料解决了这些问题。
在写作业的过程中,调试和流程图是我所不熟练的地方,做流程图的时候通常就会一团糟,分辨不出来,后经过请教同学,查找资料等解决了这些问题。
四·互评和学习进度
1、点评3个同学的本周作业
https://www.cnblogs.com/blogdizhiming/p/10147257.html
https://www.cnblogs.com/smr2018023977/p/10122983.html
https://www.cnblogs.com/7K7klz/p/10148787.html
2.学习进度